【发布时间】:2012-04-17 02:48:25
【问题描述】:
全部,
在测试中遇到一些问题,如下所示:
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) 的期望——只是记录创建和随后的变更评估失败了。
所以 - 问题:
这是在作为测试的一部分调用的控制器上指定期望的正确方法吗?
感谢您的帮助!
【问题讨论】:
标签: ruby-on-rails rspec rspec2