Class: TestMethodCaching
- Inherits:
-
Builder::Test
- Object
- Minitest::Runnable
- Minitest::Test
- Builder::Test
- TestMethodCaching
- Defined in:
- lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/builder-3.2.4/test/test_method_caching.rb
Constant Summary
Constants inherited from Minitest::Test
Minitest::Test::PASSTHROUGH_EXCEPTIONS, Minitest::Test::SETUP_METHODS, Minitest::Test::TEARDOWN_METHODS
Constants included from Minitest::Assertions
Minitest::Assertions::E, Minitest::Assertions::UNDEFINED
Constants inherited from Minitest::Runnable
Instance Attribute Summary
Attributes inherited from Minitest::Runnable
Instance Method Summary collapse
-
#teardown ⇒ Object
We can directly ask if xml object responds to the cache_me or do_not_cache_me methods because xml is derived from BasicObject (and repond_to? is not defined in BasicObject).
- #test_caching_does_not_break_weird_symbols ⇒ Object
- #test_method_call_caching ⇒ Object
- #test_method_call_caching_disabled ⇒ Object
Methods inherited from Builder::Test
Methods inherited from Minitest::Test
#capture_exceptions, #class_name, #clean, i_suck_and_my_tests_are_order_dependent!, make_my_diffs_pretty!, #neuter_exception, #new_exception, parallelize_me!, #run, runnable_methods, #sanitize_exception, test_order, #with_empty_backtrace_filter, #with_info_handler
Methods included from Minitest::Guard
#jruby?, #maglev?, #mri?, #osx?, #rubinius?, #windows?
Methods included from Minitest::Test::LifecycleHooks
#after_setup, #after_teardown, #before_setup, #before_teardown, #setup
Methods included from Minitest::Reportable
#class_name, #error?, #location, #passed?, #result_code, #skipped?
Methods included from Minitest::Assertions
#_synchronize, #assert, #assert_empty, #assert_equal, #assert_in_delta, #assert_in_epsilon, #assert_includes, #assert_instance_of, #assert_kind_of, #assert_match, #assert_mock, #assert_nil, #assert_operator, #assert_output, #assert_path_exists, #assert_predicate, #assert_raises, #assert_respond_to, #assert_same, #assert_send, #assert_silent, #assert_throws, #capture_io, #capture_subprocess_io, #diff, diff, diff=, #exception_details, #fail_after, #flunk, #message, #mu_pp, #mu_pp_for_diff, #pass, #refute, #refute_empty, #refute_equal, #refute_in_delta, #refute_in_epsilon, #refute_includes, #refute_instance_of, #refute_kind_of, #refute_match, #refute_nil, #refute_operator, #refute_path_exists, #refute_predicate, #refute_respond_to, #refute_same, #skip, #skip_until, #skipped?, #things_to_diff
Methods inherited from Minitest::Runnable
#failure, inherited, #initialize, #marshal_dump, #marshal_load, methods_matching, #name, #name=, on_signal, #passed?, reset, #result_code, run, #run, run_one_method, runnable_methods, runnables, #skipped?, #time_it, #whatever, with_info_handler
Constructor Details
This class inherits a constructor from Minitest::Runnable
Instance Method Details
#teardown ⇒ Object
We can directly ask if xml object responds to the cache_me or do_not_cache_me methods because xml is derived from BasicObject (and repond_to? is not defined in BasicObject).
Instead we are going to stub out method_missing so that it throws an error, and then make sure that error is either thrown or not thrown as appropriate.
27 28 29 30 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/builder-3.2.4/test/test_method_caching.rb', line 27 def teardown super Builder::XmlBase.cache_method_calls = true end |
#test_caching_does_not_break_weird_symbols ⇒ Object
32 33 34 35 36 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/builder-3.2.4/test/test_method_caching.rb', line 32 def test_caching_does_not_break_weird_symbols xml = Builder::XmlMarkup.new xml.__send__("work-order", 1) assert_equal "<work-order>1</work-order>", xml.target! end |
#test_method_call_caching ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/builder-3.2.4/test/test_method_caching.rb', line 38 def test_method_call_caching xml = Builder::XmlMarkup.new xml.cache_me def xml.method_missing(*args) ::Kernel.fail StandardError, "SHOULD NOT BE CALLED" end assert_nothing_raised do xml.cache_me end end |
#test_method_call_caching_disabled ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/builder-3.2.4/test/test_method_caching.rb', line 50 def test_method_call_caching_disabled Builder::XmlBase.cache_method_calls = false xml = Builder::XmlMarkup.new xml.do_not_cache_me def xml.method_missing(*args) ::Kernel.fail StandardError, "SHOULD BE CALLED" end assert_raise(StandardError, "SHOULD BE CALLED") do xml.do_not_cache_me end end |