Class: Object
Do not use. This class is for internal use only.
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Instance Chain:
self,
::Minitest::Expectations
|
|
| Inherits: | BasicObject |
| Defined in: | lib/minitest/mock.rb, lib/minitest/spec.rb |
Overview
Object extensions for ::Minitest::Mock.
Instance Method Summary
-
#stub(name, val_or_callable, *block_args, **block_kwargs, &block)
Add a temporary stubbed method replacing
namefor the duration of theblock.
::Minitest::Expectations - Included
| #assert_empty | |
| #assert_equal | |
| #assert_in_delta | |
| #assert_in_epsilon | |
| #assert_includes | |
| #assert_instance_of | |
| #assert_kind_of | |
| #assert_match | |
| #assert_nil | |
| #assert_operator | |
| #assert_output | |
| #assert_path_exists | |
| #assert_pattern | See |
| #assert_raises | |
| #assert_respond_to | |
| #assert_same | |
| #assert_silent | |
| #assert_throws | |
| #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_pattern | See |
| #refute_respond_to | |
| #refute_same |
Instance Method Details
#stub(name, val_or_callable, *block_args, **block_kwargs, &block)
Add a temporary stubbed method replacing name for the duration of the block. If val_or_callable responds to #call, then it returns the result of calling it, otherwise returns the value as-is. If stubbed method yields a block, block_args will be passed along. Cleans up the stub at the end of the block. The method name must exist before stubbing.
def test_stale_eh
obj_under_test = Something.new
refute obj_under_test.stale?
Time.stub :now, Time.at(0) do
assert obj_under_test.stale?
end
end
# File 'lib/minitest/mock.rb', line 278
def stub name, val_or_callable, *block_args, **block_kwargs, &block new_name = "__minitest_stub__#{name}" = class << self; self; end if respond_to? name and not methods.map(&:to_s).include? name.to_s then .send :define_method, name do |*args, **kwargs| super(*args, **kwargs) end end .send :alias_method, new_name, name if ENV["MT_KWARGS_HAC\K"] then .send :define_method, name do |*args, &blk| if val_or_callable.respond_to? :call then val_or_callable.call(*args, &blk) else blk.call(*block_args, **block_kwargs) if blk val_or_callable end end else .send :define_method, name do |*args, **kwargs, &blk| if val_or_callable.respond_to? :call then if kwargs.empty? then # FIX: drop this after 2.7 dead val_or_callable.call(*args, &blk) else val_or_callable.call(*args, **kwargs, &blk) end else if blk then if block_kwargs.empty? then # FIX: drop this after 2.7 dead blk.call(*block_args) else blk.call(*block_args, **block_kwargs) end end val_or_callable end end end block[self] ensure .send :undef_method, name .send :alias_method, name, new_name .send :undef_method, new_name end