在Minitest灯具中使用Faker的权宜之计

时间:2015-11-12 10:34:21

标签: minitest fixtures faker

现在很多Rails程序员从RSpec转到Minitest。我喜欢在FactoryGirl工厂的Faker生成的测试中获得美观且有意义的数据。然而,我很惊讶在Minitest灯具中看到了不同的方法。在我发现Faker根本没有使用过的所有例子中。所以我的问题是我应该在Minitest中使用什么方法用于灯具。我是否应该使用Faker来填充灯具?

1 个答案:

答案 0 :(得分:1)

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

FactoryGirl.define do
  factory :user do
    first_name "John"
    last_name  "Doe"
    admin false
  end
end

user = build(:user, first_name: "Joe")

另一方面,灯具会在应用程序数据库中为您提供实际数据。这些是在测试执行和未经验证的情况下创建的,因此应用程序增长的趋势是必须将所有灯具作为单个测试数据集进行管理。这是反对固定装置的一个重要部分,但工厂和固定装置都有其优点和缺点。

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