全部,
在测试中遇到一些问题,如下所示:
it "does something" do
controller.should_receive(:some_method).once
expect {
post :create, some_params_hash, some_session_hash
}.to change(Something, :count).by(1)
end
导轨侧的控制器 - 粗略示例:
class SomethingsController
before_filter :some_method
def create
respond_with Something.create params[:something]
end
def some_method
puts 'some_method'
end
end
如果我删除 controller.should_receive 期望,这一切都很好,并且工作得很好。如果我保持期望 - 测试失败。
奇怪的是它并没有因为不满足的期望而失败——它实际上似乎满足了 should_receive(:some_method) 的期望——只是记录创建和随后的变更评估失败了。
所以 - 问题:
这是在作为此测试的一部分调用的控制器上指定期望的正确方法吗?
谢谢你的帮助!