我只是想知道我是否以正确的方式理解测试。
模型测试应该在没有模拟的情况下完成,例如:
rspec
model.name = 'test'
model.save
model.should eq('test')
并且控制器应该基于模拟:
rspec
model.should_receive(:save).and_return(true)
控制器
def action
...
if model.save
...
end
总结:控制器在没有任何真实数据的情况下进行测试。与在 ... db 上运行的模型层相比,所有数据都是由存根和模拟“提供”的?
但我认为该模型也应该被嘲笑
model.name = 'test'
model.should_receive(:save)
model.should eq('test')
但我看不到这样的测试意义,因为我没有测试保存方法。