我正在开发一个 Rails 项目,其中模型查询服务并从服务中获取数据。现在,当我想为模型和控制器编写测试时,我需要模仿服务。我对 Rails 测试相当陌生。我对我应该做什么感到困惑。Rails 有存根、模拟和夹具——我应该使用这三个中的哪一个。我想固定装置不会有用。建议请。谢谢。
问问题
1292 次
1 回答
0
大多数 Rails 测试不需要存根或模拟,但在这种情况下,您可能需要它的一个示例是在控制器或集成测试中模拟模型。
由于控制器通常会操纵模型,因此您有时会想要验证模型是否以某种方式被调用。您通常可以通过在调用控制器之后断言模型的状态来做到这一点,但有时您可能希望验证从控制器到模型的实际调用。在这种情况下,您使用 Ruby 模拟库“模拟”模型并在调用控制器之前设置期望。如果未调用预期的模型方法,则测试将失败。
另一个动机可能是伪造一些返回的数据,在这种情况下,您将“存根”模型。存根只是嘲笑没有任何断言,你可以准备一些虚假的行为。
于 2018-11-30T08:57:21.643 回答