gpt4 book ai didi

ruby-on-rails - rails rspec 模型和 Controller 测试

转载 作者:行者123 更新时间:2023-11-28 21:33:01 24 4
gpt4 key购买 nike

我只是想知道我是否以正确的方式理解测试。

模型测试应该在没有模拟的情况下完成,例如:

规范

model.name = 'test'
model.save
model.should eq('test')

并且 Controller 应该基于模拟:

规范

model.should_receive(:save).and_return(true)

Controller

def action
...
if model.save
...
end

总结: Controller 是在没有任何真实数据的情况下进行测试的。与在...数据库上运行的模型层相比,所有数据都是由 stub 和模拟“提供”的?

但我认为模型也应该被模拟

model.name = 'test'
model.should_receive(:save)
model.should eq('test')

但我没有看到这样的测试意义,因为我没有测试保存方法。

最佳答案

作为一般经验法则,我就是这样做的。

使用您的示例,如果您已经在模型规范中测试了 save 方法,则无需在 Controller 中再次测试它,您只需要知道它已被调用即可。

本质上,您需要测试 Controller 的行为,而不是模型对其的 react 。

关于ruby-on-rails - rails rspec 模型和 Controller 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12788370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com