module Petitest::Assertions
Constants
- VERSION
Public Instance Methods
assert_equal(expected, actual, message = nil)
click to toggle source
@param expected [#==] @param actual [Object] @param message [String, nil]
# File lib/petitest/assertions.rb, line 10 def assert_equal(expected, actual, message = nil) message ||= "Expected #{expected.inspect} to be equal to #{actual.inspect}" assert(message) do expected == actual end end
assert_match(expected, actual, message = nil)
click to toggle source
@param expected [#===] @param actual [Object] @param message [String, nil]
# File lib/petitest/assertions.rb, line 20 def assert_match(expected, actual, message = nil) message ||= "Expected #{expected.inspect} === #{actual.inspect}" assert(message) do expected === actual end end
assert_operator(left, operator, right, message = nil)
click to toggle source
@param left [Object] @param operator [Symbol] @param right [Object]
# File lib/petitest/assertions.rb, line 30 def assert_operator(left, operator, right, message = nil) message ||= "Expected #{left.inspect} #{operator} #{right.inspect}" assert(message) do left.__send__(operator, right) end end
assert_output(pattern_for_stdout, pattern_for_stderr = nil, message = nil, &block)
click to toggle source
@param pattern_for_stdout [#===, nil] @param pattern_for_stderr [#===, nil] @param right [Object]
# File lib/petitest/assertions.rb, line 40 def assert_output(pattern_for_stdout, pattern_for_stderr = nil, message = nil, &block) output_from_stdout, output_from_stderr = capture_stdout_and_stderr(&block) unless pattern_for_stdout.nil? assert(message || "Expected stdout output to match with #{pattern_for_stdout.inspect}") do pattern_for_stdout === output_from_stdout end end unless pattern_for_stdout.nil? assert(message || "Expected stderr output to match with #{pattern_for_stdout.inspect}") do pattern_for_stdout === output_from_stdout end end end
assert_raise(*args, &block)
click to toggle source
@param args [Array<Class, String>]
# File lib/petitest/assertions.rb, line 55 def assert_raise(*args, &block) message = args.pop if args.last.is_a?(::String) expected_exception_classes = args expected_exception_classes << ::Exception if expected_exception_classes.empty? expected_exception_classes_text = expected_exception_classes.map(&:inspect).join(" or ") message ||= "Expected #{expected_exception_classes_text} to be raised, but not" assert(message) do actual = begin block.call nil rescue *expected_exception_classes => exception exception rescue ::SignalException, ::SystemExit raise rescue ::Exception => exception exception end expected_exception_classes.any? do |klass| klass === actual end end end
assert_to_be(phrase, *args)
click to toggle source
@param phrase [Symbol] @param args [Array]
# File lib/petitest/assertions.rb, line 80 def assert_to_be(phrase, *args) actual = args.pop method_name = "#{phrase}?" args_text = "(#{args.map(&:inspect).join(', ')})" unless args.empty? message = "Expected #{actual.inspect}.#{method_name}#{args_text} to be truthy" assert(message) do actual.__send__(method_name, *args) end end
assert_to_have(phrase, *args)
click to toggle source
@param phrase [Symbol] @param args [Array]
# File lib/petitest/assertions.rb, line 92 def assert_to_have(phrase, *args) actual = args.pop method_name = "has_#{phrase}?" args_text = "(#{args.map(&:inspect).join(', ')})" unless args.empty? message = "Expected #{actual.inspect}.#{method_name}#{args_text} to be truthy" assert(message) do actual.__send__(method_name, *args) end end
Private Instance Methods
capture_stdout_and_stderr(&block)
click to toggle source
@return [Array<String>]
# File lib/petitest/assertions.rb, line 105 def capture_stdout_and_stderr(&block) dummy_stdout = ::StringIO.new dummy_stderr = ::StringIO.new original_stdout = $stdout original_stderr = $stderr $stdout = dummy_stdout $stderr = dummy_stderr block.call [ dummy_stdout.string, dummy_stderr.string, ] ensure $stdout = original_stdout $stderr = original_stderr end