Class: Test::Spec::ShouldNot
- Inherits:
-
Object
show all
- Includes:
- Unit::Assertions
- Defined in:
- lib/test/spec.rb
Instance Method Summary
collapse
Constructor Details
#initialize(object, message = nil) ⇒ ShouldNot
Returns a new instance of ShouldNot.
196
197
198
199
|
# File 'lib/test/spec.rb', line 196
def initialize(object, message=nil)
@object = object
@message = message
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
269
270
271
272
273
274
275
276
277
278
279
280
|
# File 'lib/test/spec.rb', line 269
def method_missing(name, *args)
return _raise(*args) if name == :raise
if @object.respond_to?("#{name}?")
assert_block("#{name}? expected to be false. #{@message}") {
not @object.__send__("#{name}?", *args)
}
else
super
end
end
|
Instance Method Details
#_raise(*args) ⇒ Object
233
234
235
|
# File 'lib/test/spec.rb', line 233
def _raise(*args)
assert_nothing_raised(*(args+[@message]), &@object)
end
|
#be(*value) ⇒ Object
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
# File 'lib/test/spec.rb', line 212
def be(*value)
case value.size
when 0
self
when 1
if CustomShould === value.first
pass value.first
else
assert_not_same value.first, @object, @message
end
else
Kernel.raise ArgumentError, "should.be needs zero or one argument"
end
end
|
245
246
247
248
|
# File 'lib/test/spec.rb', line 245
def be_nil
warn "Test::Spec::ShouldNot#be_nil is deprecated and will be removed in future versions."
self.nil
end
|
#equal(value) ⇒ Object
Also known as:
==
207
208
209
|
# File 'lib/test/spec.rb', line 207
def equal(value)
assert_not_equal value, @object, @message
end
|
#match(value) ⇒ Object
Also known as:
=~
227
228
229
230
|
# File 'lib/test/spec.rb', line 227
def match(value)
assert_no_match value, @object, @message
end
|
241
242
243
|
# File 'lib/test/spec.rb', line 241
def nil
assert_not_nil @object, @message
end
|
#not(*args) ⇒ Object
250
251
252
253
254
255
256
257
258
259
|
# File 'lib/test/spec.rb', line 250
def not(*args)
case args.size
when 0
Should.new(@object, @message)
when 1
Should.new(@object, @message).pass(args.first)
else
raise ArgumentError, "#not takes zero or one argument(s)."
end
end
|
#pass(custom) ⇒ Object
261
262
263
264
265
266
267
|
# File 'lib/test/spec.rb', line 261
def pass(custom)
_wrap_assertion {
begin
assert !custom.matches?(@object), @message || custom.failure_message
end
}
end
|
#satisfy(&block) ⇒ Object
201
202
203
204
205
|
# File 'lib/test/spec.rb', line 201
def satisfy(&block)
assert_block(@message || "not.satisfy block succeded.") {
not yield @object
}
end
|
237
238
239
|
# File 'lib/test/spec.rb', line 237
def throw
assert_nothing_thrown(@message, &@object)
end
|