我只想测试用户电子邮件,所以我有这个:
FactoryGirl.define do
factory :user do |u|
u.sequence(:email) {|n| "user#{n}@example.com" }
u.first_name { Faker::Name.first_name }
u.password "foo123"
end
end
更新
如您所见,我正在生成电子邮件,sequence
所以现在我想测试我是否指向用户的正确电子邮件地址,例如,我想从以下位置向正确的用户发送电子邮件controller
:
let(:user) { FactoryGirl.create(:user) }
it "should notify user about his profile" do
@user = FactoryGirl.create(:user)
# profile update..
ActionMailer::Base.deliveries.should include [@user.email]
end
上述测试失败,因为user.email
指向不同的电子邮件地址,而不是 FactoryGirl 制作的电子邮件地址:
1) UserController Manage users should notify user about his profile
Failure/Error: ActionMailer::Base.deliveries.should include [user.email]
expected [#<Mail::Message:5059500, Multipart: false, Headers: <From: foo <info@foo.com>>, <To: user16@example.com>, <Message-ID: <..41d@linux.mail>>, <Subject: foo>, <Content-Type: text/html>, <Content-Transfer-Encoding: 7bit>>] to include ["user15@example.com"]
Diff:
@@ -1,2 +1,2 @@
-[["user15@example.com"]]
+[#<Mail::Message:5059500, Multipart: false, Headers: <..>, <From: foo Verticals <info@castaclip.com>>, <To: user16@example.com>, <Message-ID: <..41d@linux.mail>>, <Subject: foo>, <Content-Type: text/html>, <Content-Transfer-Encoding: 7bit>>]
有什么帮助吗?tnx。