【问题标题】:Creating and Saving Records for Rspec Unit Tests为 Rspec 单元测试创​​建和保存记录
【发布时间】:2019-02-02 09:07:12
【问题描述】:

我最近每周为我的一个客户使用 Rspec 进行大约 10 小时的 Rails TDD。我发现我需要编写的很多测试都需要在数据库中有记录,但是根据我所学到的,测试引用数据库并不是一个好习惯。如何在我的测试中创建/保存记录,以便测试可以成功运行,或者是否有更好的方法来解决这个问题?

【问题讨论】:

  • 你看过FactoryBot工厂了吗?
  • 大多数情况下,您可以使用模拟来伪造真实对象,其他时候您实际上不需要保存记录,但新的未持久对象也可以。有时必须使用数据库,这取决于您要测试的内容。我不认为有一个通用的解决方案,您至少应该提供一些您希望帮助获得更好建议的测试示例。
  • 这个想法是,在创建(或持久化)一个对象之前,您应该问自己是否真的需要将该对象存储在数据库中......或者实例化该对象是否足够.即使您使用的是类似 FactoryBot (i.e. there are times when you should use build_stubbed instead of create.

标签: ruby-on-rails unit-testing rspec tdd bdd


【解决方案1】:

你肯定想检查一些宝石来帮助你。

至少:

它基本上可以满足您的任何需求。

您通常不想将对象实际持久化到 db,gem 会在那里为您提供build 方法。

DSL 很清楚,嘿,这是thoughtbot 的产品 - 质量有保证:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    相关资源
    最近更新 更多