虽然我通常更喜欢 Factory Girl,但我需要使用现有的设备来测试我正在开发的应用程序。
问题是我需要使用依赖于测试的夹具集,即我有多个用于同一模型的集合,需要根据我正在运行的测试加载。
在过去的 rails 0.x 有几个插件可以做到这一点。我如何使用 Rails 3+ 完成相同的任务?
提前致谢
虽然我通常更喜欢 Factory Girl,但我需要使用现有的设备来测试我正在开发的应用程序。
问题是我需要使用依赖于测试的夹具集,即我有多个用于同一模型的集合,需要根据我正在运行的测试加载。
在过去的 rails 0.x 有几个插件可以做到这一点。我如何使用 Rails 3+ 完成相同的任务?
提前致谢
您可以创建一些脚本文件来调用您的工厂来创建记录。然后在测试中需要脚本。
你说你是工厂女孩的粉丝,所以我不必向你推销它有多棒。
为什么不把这些装置改造成工厂呢?在 Rails 中将 Fixtures 转换为 Factory Girl应该会有所帮助。
一旦您将数据作为 Factory Girl 中的工厂,我建议您利用其继承功能,如https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md所示:
您可以通过嵌套工厂轻松地为同一个类创建多个工厂,而无需重复公共属性:
工厂:后做 标题“一个标题” 工厂 :approved_post 做 批准 真的 结尾 结尾 批准后 = FactoryGirl.create(:approved_post) approved_post.title # => "一个标题" 已批准_post.approved # => true
您还可以显式分配父级:
工厂:后做 标题“一个标题” 结尾 工厂:approved_post,父::post do 批准 真的 结尾