【发布时间】:2013-04-18 20:52:44
【问题描述】:
当我在开发中启动 Rails 控制台时,我看到 FactoryGirl 正在创建对象。显然我做错了,但是正确的方法是什么?这段代码使我的测试工作......
# tests/factories/board.rb
FactoryGirl.define do
factory :word do
sequence(:text) { |n| "FAKETEXT#{n}" }
end
factory :board do
trait :has_words do
words [
FactoryGirl.create(:word, id: "514b81cae14cfa78f335e250"),
FactoryGirl.create(:word, id: "514b81cae14cfa7917e443f0"),
FactoryGirl.create(:word, id: "514b81cae14cfa79182407a2"),
FactoryGirl.create(:word, id: "514b81cae14cfa78f581c534")
]
end
end
end
请注意,在我的config 目录中的任何文件中都没有提及工厂的任何内容,因此无论加载如何都由 gem 自动进行。我的Gemfile 的相关部分内容如下:
# Stuff not to use in production
group :development, :test do
# Command-line debugger for development
gem "debugger"
# for unit testing - replace fixtures
gem "factory_girl_rails"
end
所以我可以让工厂女孩离开开发环境。但我认为这些记录是在使用工厂之前创建的,这表明我写错了我的工厂。但如果你告诉我工厂写得对,我就照做。
【问题讨论】:
-
这个代码在规范/工厂中吗?
-
该代码在工厂文件中。添加了位置的评论。
-
factory_girl 如何在您的 gem 文件中列出?
-
更新了 Gemfile 的相关部分。
-
看起来不是工厂不正确。看起来一定有什么东西在你的测试之外调用它。不如对您的应用程序进行全局文本搜索以查找
FactoryGirl并查看它是否在任何地方被调用?
标签: ruby-on-rails mongoid factory-bot