Class: Object
- Inherits:
- BasicObject
- Includes:
- Minitest::Expectations
- Defined in:
- lib/minitest/mock.rb,
lib/minitest/spec.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#stub(name, val_or_callable, &block) ⇒ Object
Add a temporary stubbed method replacing
name
for the duration of theblock
.
Methods included from Minitest::Expectations
#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_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_respond_to, #refute_same
Instance Method Details
#stub(name, val_or_callable, &block) ⇒ Object
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. 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
165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/minitest/mock.rb', line 165 def stub name, val_or_callable, &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| super(*args) end end .send :alias_method, new_name, name .send :define_method, name do |*args| if val_or_callable.respond_to? :call then val_or_callable.call(*args) else val_or_callable end end yield self ensure .send :undef_method, name .send :alias_method, name, new_name .send :undef_method, new_name end |