class Petitest::Test
Constants
- TEST_METHOD_NAME_PREFIX
Attributes
current_description[RW]
description[W]
metadata[W]
Public Class Methods
children()
click to toggle source
@return [Array<Class>]
# File lib/petitest/test.rb, line 13 def children @children ||= [] end
description()
click to toggle source
@return [String]
# File lib/petitest/test.rb, line 18 def description @description ||= name end
description_by_method_name()
click to toggle source
@return [Hash{Symbol => String}]
# File lib/petitest/test.rb, line 23 def description_by_method_name @description_by_method_name ||= {} end
generate_test_group()
click to toggle source
@return [Petitest::TestGroup]
# File lib/petitest/test.rb, line 28 def generate_test_group ::Petitest::TestGroup.new(test_class: self) end
inherited(child)
click to toggle source
@note Override
Calls superclass method
# File lib/petitest/test.rb, line 33 def inherited(child) super children << child end
metadata()
click to toggle source
@return [Hash{Symbol => Object}]
# File lib/petitest/test.rb, line 39 def metadata @metadata ||= {} end
method_added(method_name)
click to toggle source
@note Override
Calls superclass method
# File lib/petitest/test.rb, line 44 def method_added(method_name) super if current_description && check_if_test_method_name(method_name) description_by_method_name[method_name] = current_description clear_current_description end end
new( test_group:, test_method_name: )
click to toggle source
@param test_group [Petitest::TestGroup] @param test_method_name [Symbol]
# File lib/petitest/test.rb, line 92 def initialize( test_group:, test_method_name: ) @test_group = test_group @test_method_name = test_method_name end
test_ancestors()
click to toggle source
@return [Array<Class>]
# File lib/petitest/test.rb, line 53 def test_ancestors @test_ancestors ||= ancestors.each_with_object([]) do |klass, classes| if klass == ::Petitest::Test break classes end if klass.is_a?(::Class) classes << klass end end end
test_method_names()
click to toggle source
@return [Array<Symbol>]
# File lib/petitest/test.rb, line 65 def test_method_names public_instance_methods.select do |method_name| check_if_test_method_name(method_name) end end
undefine_test_methods()
click to toggle source
# File lib/petitest/test.rb, line 71 def undefine_test_methods test_method_names.each do |method_name| undef_method(method_name) end end
Private Class Methods
check_if_test_method_name(method_name)
click to toggle source
@param method_name [Symbol] @return [Boolean]
# File lib/petitest/test.rb, line 81 def check_if_test_method_name(method_name) method_name.to_s.start_with?(TEST_METHOD_NAME_PREFIX) end
clear_current_description()
click to toggle source
# File lib/petitest/test.rb, line 85 def clear_current_description self.current_description = nil end
Public Instance Methods
assert(actual_or_message = nil, message = nil, &block)
click to toggle source
@param actual_or_message [Object] @param message [String, nil]
# File lib/petitest/test.rb, line 102 def assert(actual_or_message = nil, message = nil, &block) if block message = actual_or_message check(message || "Expected given block to return truthy", &block) else actual = actual_or_message check(message || "Expected #{actual.inspect} to be truthy") do actual end end end
runner()
click to toggle source
@return [Petitest::TestRunner]
# File lib/petitest/test.rb, line 120 def runner @runner ||= Petitest::TestRunner.new( test: self, test_group: @test_group, test_method_name: @test_method_name, ) end
skip(message = nil)
click to toggle source
@param message [String, nil]
# File lib/petitest/test.rb, line 115 def skip(message = nil) raise ::Petitest::AssertionSkipError.new(message) end
Private Instance Methods
check(message, &block)
click to toggle source
@param message [String, nil]
# File lib/petitest/test.rb, line 131 def check(message, &block) unless block.call raise ::Petitest::AssertionFailureError.new(message) end end