| Class | Test::Spec::ShouldNot |
| In: |
lib/test/spec.rb
|
| Parent: | Object |
# File lib/test/spec.rb, line 203
203: def initialize(object, message=nil)
204: @object = object
205: @message = message
206: end
# File lib/test/spec.rb, line 245
245: def _raise(*args, &block)
246: block ||= @object
247: assert_nothing_raised(*(args+[@message]), &block)
248: end
# File lib/test/spec.rb, line 208
208: def add_assertion
209: $TEST_SPEC_TESTCASE && $TEST_SPEC_TESTCASE.__send__(:add_assertion)
210: end
# File lib/test/spec.rb, line 224
224: def be(*value)
225: case value.size
226: when 0
227: self
228: when 1
229: if CustomShould === value.first
230: pass value.first
231: else
232: assert_not_same value.first, @object, @message
233: end
234: else
235: Kernel.raise ArgumentError, "should.be needs zero or one argument"
236: end
237: end
# File lib/test/spec.rb, line 258
258: def be_nil
259: warn "Test::Spec::ShouldNot#be_nil is deprecated and will be removed in future versions."
260: self.nil
261: end
# File lib/test/spec.rb, line 219
219: def equal(value)
220: assert_not_equal value, @object, @message
221: end
# File lib/test/spec.rb, line 239
239: def match(value)
240: # Icky Regexp check
241: assert_no_match value, @object, @message
242: end
# File lib/test/spec.rb, line 282
282: def method_missing(name, *args, &block)
283: # This will make raise call Kernel.raise, and self.raise call _raise.
284: return _raise(*args, &block) if name == :raise
285:
286: if @object.respond_to?("#{name}?")
287: assert_block("#{name}? expected to be false. #{@message}") {
288: not @object.__send__("#{name}?", *args)
289: }
290: else
291: if @object.respond_to?(name)
292: assert_block("#{name} expected to be false. #{@message}") {
293: not @object.__send__("#{name}", *args)
294: }
295: else
296: super
297: end
298: end
299: end
# File lib/test/spec.rb, line 263
263: def not(*args)
264: case args.size
265: when 0
266: Should.new(@object, @message)
267: when 1
268: Should.new(@object, @message).pass(args.first)
269: else
270: raise ArgumentError, "#not takes zero or one argument(s)."
271: end
272: end
# File lib/test/spec.rb, line 274
274: def pass(custom)
275: _wrap_assertion {
276: begin
277: assert !custom.matches?(@object), @message || custom.failure_message
278: end
279: }
280: end