夹具关联在邮件测试中失败
Fixture associations failing in mailer test
邀请与组织(多:1)和用户(多:多通过)相关联。这在开发中有效。我可以创建一个新的邀请,它会发送一封带有邀请的电子邮件。此邀请的值为 person_one_id
、person_two_id
和 organization_id
。 Person_one 和 person_two 是用户模型中的用户。这在开发中有效,由控制台正确返回 Invitation.first.organization
、Invitation.first.person_one
和 Invitation.first.person_two
.
的记录确认
问题出在我的邮件测试上。尽管从固定装置加载的邀请具有 person_one_id
、person_two_id
和 organization_id
的值,但如果在调试器中我调用 invitation.organization
、invitation.person_one
或 invitation.person_two
, 它returns nil
.
有没有人看到我的测试代码有什么问题导致了这个问题?
邮寄者:
def invitation(invitation)
@invitation = invitation
@organization = invitation.organization # This returns nil even though invitation has a value for organization_id
...etc...
end
赛程:
invitation_one:
person_one: users(:one) # Loads this person from users fixtures.
person_two: users(:archer)
organization: organizations(:one) # Loads from organizations fixtures.
message: I am pleased to invite you1
邮件测试:
test "invitation" do
@invitation = invitations(:invitation_one)
mail = InvitationMailer.invitation(@invitation)
# Produces a "NoMethodError: undefined method `id' for nil:NilClass" error since a.o. invitation.organization is nil.
...etc...
end
我在测试文件中添加了调试器,该调试器位于加载夹具的行之后。调试器响应 @invitation
:
<Invitation id: 749093126, person_one_id: 41652760, person_two_id: 976142315, organization_id: 118162230, email: nil, message: "I am pleased to invite you1", created_at: "2015-07-05 09:06:23", updated_at: "2015-07-07 12:27:19">
这证明关联(person_one_id
、person_two_id
和 organization_id
)具有值。然而,调试器用 nill 响应 @invitation.organization
,它对 @invitation.person_one
和 @invitation.person_two
.
做同样的事情
原来是灯具设置的问题。要为我需要使用的灯具创建关联:
invitation_one:
person_one: one
person_two: archer
organization: one
message: I am pleased to invite you1
邀请与组织(多:1)和用户(多:多通过)相关联。这在开发中有效。我可以创建一个新的邀请,它会发送一封带有邀请的电子邮件。此邀请的值为 person_one_id
、person_two_id
和 organization_id
。 Person_one 和 person_two 是用户模型中的用户。这在开发中有效,由控制台正确返回 Invitation.first.organization
、Invitation.first.person_one
和 Invitation.first.person_two
.
问题出在我的邮件测试上。尽管从固定装置加载的邀请具有 person_one_id
、person_two_id
和 organization_id
的值,但如果在调试器中我调用 invitation.organization
、invitation.person_one
或 invitation.person_two
, 它returns nil
.
有没有人看到我的测试代码有什么问题导致了这个问题?
邮寄者:
def invitation(invitation)
@invitation = invitation
@organization = invitation.organization # This returns nil even though invitation has a value for organization_id
...etc...
end
赛程:
invitation_one:
person_one: users(:one) # Loads this person from users fixtures.
person_two: users(:archer)
organization: organizations(:one) # Loads from organizations fixtures.
message: I am pleased to invite you1
邮件测试:
test "invitation" do
@invitation = invitations(:invitation_one)
mail = InvitationMailer.invitation(@invitation)
# Produces a "NoMethodError: undefined method `id' for nil:NilClass" error since a.o. invitation.organization is nil.
...etc...
end
我在测试文件中添加了调试器,该调试器位于加载夹具的行之后。调试器响应 @invitation
:
<Invitation id: 749093126, person_one_id: 41652760, person_two_id: 976142315, organization_id: 118162230, email: nil, message: "I am pleased to invite you1", created_at: "2015-07-05 09:06:23", updated_at: "2015-07-07 12:27:19">
这证明关联(person_one_id
、person_two_id
和 organization_id
)具有值。然而,调试器用 nill 响应 @invitation.organization
,它对 @invitation.person_one
和 @invitation.person_two
.
原来是灯具设置的问题。要为我需要使用的灯具创建关联:
invitation_one:
person_one: one
person_two: archer
organization: one
message: I am pleased to invite you1