23t*_*tux 24 ruby rspec ruby-on-rails rspec2 ruby-on-rails-3
我尝试使用RSpec2测试一个类,它有一些私有方法,这些方法是从一些公共方法调用的.我测试公共方法
@foo.should_receive(:start_training).exactly(2).times
Run Code Online (Sandbox Code Playgroud)
如果他们被召唤和多久 我的问题是,这种方法不适用于私有方法.那么,有没有什么办法可以使用某物像@foo.send(:private_method)结合should_receive?还是其他任何语法?
Sin*_*ary 13
您可以使用allow_any_instance_of方法来存根或模拟任何类的实例,例如,您使用某些方法class命名Foo,而private不是像这样做
allow_any_instance_of(Foo).to receive(:private_method) do
#do something
end
Run Code Online (Sandbox Code Playgroud)
万一你module也有,你可以做这样的事情
allow_any_instance_of(Module::Foo).to receive(:private_method) do
#do something
end
Run Code Online (Sandbox Code Playgroud)
您可以allow_any_instance_of()在官方文档中找到有关方法的更多详细信息