我想在Minitest上使用Mocha存根返回另一个存根的函数。 这是代码
@instance = stub('instance') do
stubs(:destroy).returns(true)
stubs(:id).returns(0)
end
find_by_id = stub do
stubs(:find_by_id).returns(nil) #default
stubs(:find_by_id).with(@instance.id).returns(@instance)
end
@user.stubs(:instances).returns(find_by_id)
当我使用byebug运行代码时,定义了@instance:
(byebug) @instance
#<Mock:instance>
但是,在find_by_id = stub内部
(byebug) @instance
nil
我不明白为什么@instance在do块内为nil,因为它是先前定义的。