gpt4 book ai didi

ruby-on-rails - 在 Rspec 中使用数据库查询好不好?

转载 作者:行者123 更新时间:2023-12-04 05:36:38 25 4
gpt4 key购买 nike

我已经开始使用 Rspec 为一个非常古老的项目编写测试。我正在测试的模型都是 ActiveRecords(后端是 Oracle)。
我读过一些博客,说我们应该使用模拟和 stub /夹具/工厂女孩而不是触发实际的 sql。
我很迷惑。我将不得不 stub 很多方法并创建很多对象。这是一个好习惯吗?

最佳答案

当您测试模型时,最好让您的测试与数据库集成。也就是说,不要试图模拟 ActiveRecord 的东西,而只是使用模型对象。 FactoryGirl 和 Fabrication 都只是构建真实模型对象的便捷快捷方式,它们是测试 ActiveRecord 模型时的最佳实践。

由于这是遗留代码,我建议不要在旧代码中过多地模拟或 stub ,因为隔离只有在每个组件都被隔离测试时才有效。

然而,当使用 TDD 编写代码时,mocking 和 stubbing 有很多好处:

  • 为您提供细粒度的测试(如果方法失败,您的测试会告诉您是哪个)
  • 您的测试运行得更快,因此您的 TDD 周期更短
  • 让您断言您的代码如何与其他对象交互
  • 如果你不得不过度地 stub 和模拟其他模型来隔离一个模型,通常是一个好兆头,你的代码耦合度太高,值得重构
  • 关于ruby-on-rails - 在 Rspec 中使用数据库查询好不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11668995/

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