我正在开发一个rails项目,其中模型查询服务并从服务获取数据。现在,当我想为模型和控制器编写测试时,我需要模仿服务。我对rails测试很新。我很困惑我应该做什么。 Rails有短柱,模具和夹具 - 我应该使用它们中的哪一个。我想固定装置不会有用。 建议PLZ。感谢。
答案 0 :(得分:0)
大多数Rails测试不需要存根或模拟,但是在这种情况下,您可能需要的一个示例是在控制器或集成测试中模拟模型。
由于控制器通常会操纵模型,因此您有时会希望验证是否已以某种方式调用了模型。通常,在调用控制器后,只需声明模型状态即可,但是有时您可能希望验证从控制器到模型的实际调用。在这种情况下,您可以使用Ruby模拟库“模拟”模型,并在调用控制器之前设置期望值。如果未调用预期的模型方法,则测试将失败。
另一个动机可能是伪造返回的某些数据,在这种情况下,您将“存根”模型。存根只是在嘲笑而没有任何种类的断言,您可以准备一些虚假的行为。