干燥器试验协会在factory_girl
-
16-09-2019 - |
题
任何人都可以建议一个更好的方法来做一个工厂使用一个预先建立的模型
实例对其关联?例如,这样就有可能
下文定义的儿童的信息的工厂这样一个呼叫
Factory(:my_message)
可能的替代品
Factory(:message,:sender=>@me)
?
有时候安装的哈比在这做作 例,或只是重复所以许多试验,这似乎更好地推动它进入工厂。
一个替代我能想到的是界定测试的辅助方法
如 create_message_owned_by(@me)
, 但我希望有一种方法内的factory_girl本身。
factory_girl工厂:
Factory.define :sender do |s|
sender.name "Dummy name"
end
Factory.define :message do |msg|
msg.text "Dummy text"
msg.association :sender
end
Factory.define :my_message, :parent=>:message do |msg|
msg.text "Dummy text"
### ? what goes here for msg.association :sender ? ###
end
MessagesControllerTest摘录(使用应该):
context "on GET /messages" do
setup do
@me = Factory(:sender)
@my_message = Factory(:message,:sender=>@me)
@somebody_elses_message = Factory(:message)
sign_in_as(@me)
get :index
end
should "only assign my messages" do
assert_contains(assigns(:messages), @my_message)
assert_does_not_contain(assigns(:messages), @somebody_elses_message)
end
end
解决方案
我不知道如果这是你在寻找什么,但是如果你第一次创建信息可以获取发送方通过,并将其分配给 @me
.
@my_message = Factory(:message)
@me = @my_message.sender
这是否有帮助?
不隶属于 StackOverflow