# File lib/test/spec.rb, line 162 def <(value) assert_operator @object, :<, value, @message end
# File lib/test/spec.rb, line 166 def <=(value) assert_operator @object, :<=, value, @message end
# File lib/test/spec.rb, line 170 def ===(value) assert_operator @object, :===, value, @message end
# File lib/test/spec.rb, line 154 def >(value) assert_operator @object, :>, value, @message end
# File lib/test/spec.rb, line 158 def >=(value) assert_operator @object, :>=, value, @message end
# File lib/test/spec.rb, line 131 def _raise(*args, &block) args = [RuntimeError] if args.empty? block ||= @object args << @message if @message assert_raise(*args, &block) end
# File lib/test/spec.rb, line 51 def add_assertion $TEST_SPEC_TESTCASE && $TEST_SPEC_TESTCASE.__send__(:add_assertion) end
# File lib/test/spec.rb, line 97 def be(*value) case value.size when 0 self when 1 if CustomShould === value.first pass value.first else assert_same value.first, @object, @message end else raise ArgumentError, "should.be needs zero or one argument" end end
# File lib/test/spec.rb, line 92 def close(value, delta) assert_in_delta value, @object, delta, @message end
# File lib/test/spec.rb, line 87 def equal(value) assert_equal value, @object, @message end
# File lib/test/spec.rb, line 148 def include(value) msg = build_message(@message, "<?> expected to include ?, but it didn't.", @object, value) assert_block(msg) { @object.include?(value) } end
# File lib/test/spec.rb, line 117 def instance_of(klass) assert_instance_of klass, @object, @message end
# File lib/test/spec.rb, line 122 def kind_of(klass) assert_kind_of klass, @object, @message end
# File lib/test/spec.rb, line 112 def match(value) assert_match value, @object, @message end
# File lib/test/spec.rb, line 75 def messaging(message) @message = message.to_s self end
# File lib/test/spec.rb, line 183 def method_missing(name, *args, &block) # This will make raise call Kernel.raise, and self.raise call _raise. return _raise(*args, &block) if name == :raise if @object.respond_to?("#{name}?") assert @object.__send__("#{name}?", *args), "#{name}? expected to be true. #{@message}" else if @object.respond_to?(name) assert @object.__send__(name, *args), "#{name} expected to be true. #{@message}" else super end end end
# File lib/test/spec.rb, line 142 def nil assert_nil @object, @message end
# File lib/test/spec.rb, line 64 def not(*args) case args.size when 0 ShouldNot.new(@object, @message) when 1 ShouldNot.new(@object, @message).pass(args.first) else raise ArgumentError, "#not takes zero or one argument(s)." end end
Captures output from the IO given as the second argument (STDIN by default) and matches it against a String or Regexp given as the first argument.
# File lib/test/spec/should-output.rb, line 10 def output(expected, to = STDOUT) # Store the old stream old_to = to.dup # Obtain a filehandle to replace (works with Readline) to.reopen File.open(File.join(Dir.tmpdir, "should_output_#{$$}"), "w+") # Execute @object.call # Restore out = to.dup to.reopen old_to # Grab the data out.rewind output = out.read # Match up case expected when Regexp output.should.match expected else output.should.equal expected end # case expected # Clean up ensure out.close # STDIO redirection will break else begin to.seek 0, IO::SEEK_END rescue Errno::ESPIPE rescue Errno::EPIPE end FileUtils.rm_f out.path end
# File lib/test/spec.rb, line 174 def pass(custom) _wrap_assertion { assert_nothing_raised(Test::Unit::AssertionFailedError, @message || custom.failure_message) { assert custom.matches?(@object), @message || custom.failure_message } } end
# File lib/test/spec.rb, line 127 def respond_to(method) assert_respond_to @object, method, @message end
Generated with the Darkfish Rdoc Generator 2.