【问题标题】:Expediency of using Faker in Minitest fixtures在 Minitest 夹具中使用 Faker 的权宜之计
【发布时间】:2016-02-13 15:47:55
【问题描述】:

作为现在的许多 Rails 程序员,我正在从 RSpec 转向 Minitest。我喜欢在 FactoryGirl 工厂中使用 Faker 生成的测试中获得漂亮而有意义的数据。然而,我很惊讶在 Minitest 夹具中看到不同的方法。在我发现的所有示例中,根本没有使用 Faker。所以我的问题是我应该对 Minitest 中的固定装置使用什么方法。我应该使用Faker来填充夹具吗?

【问题讨论】:

    标签: minitest fixtures faker


    【解决方案1】:

    在你的赛程中使用 Faker 并没有错,但我认为你的问题的答案归结为两者之间的根本区别。两者都用于为运行测试提供数据,但工厂是具有生成模型潜力的生成器。这意味着它们用于在测试中根据需要创建新对象,特别是,它们被用作创建具有有效和可预测数据的新对象的快捷方式,而无需指定每个属性。

    FactoryGirl.define do
      factory :user do
        first_name "John"
        last_name  "Doe"
        admin false
      end
    end
    
    user = build(:user, first_name: "Joe")
    

    另一方面,fixture 为您提供应用程序数据库中的真实数据。这些是在测试执行之外创建的并且没有验证,因此随着应用程序的增长,趋势是必须将所有夹具作为单个测试数据集进行管理。这是反对夹具的主要论据,但工厂和夹具都有其优点和缺点。

    不过,要直接回答您的问题,您没有找到更多使用 Faker 的夹具示例的原因可能是因为固定数据需要比工厂定义更严格地控​​制,其中一些也可能是倾向于使用 Minitest 的开发人员也可能倾向于从他们的 Gemfile 中删除不必要的依赖项。但是如果你想继续使用 Faker 来获取姓名和地址等,没有理由不这样做。

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2011-08-18
      • 1970-01-01
      相关资源
      最近更新 更多