我有一个rspec测试,是为正在发送的电子邮件编写的。它包含一个动态字段,其中填充了应用程序中用户的组织名称。我将文本从一个名称更改为另一个名称,并更新规范文件以反映差异,但现在它不能通过。下面是测试
require "spec_helper"
describe OrgMemberMailer do
context "when an invite email gets sent" do
before(:each) do
member = Factory(:organization_membership)
@email = OrgMemberMailer.invite(member, 'samsdungeonsanddragonsguild.com').deliver
end
it "should be delivered successfully" do
ActionMailer::Base.deliveries.should_not be_empty
@email.from.should == ["invite@domain.com"]
@email.subject.should == "SocialNetwork - invitation to join <ORG>"
@email.encoded.should =~ /You have been invited to join <ORG> on SocialNetwork/
@email.encoded.should =~ /samsdungeonsanddragonsguild.com\/organization\/accept/
end
end
end'SocialNetwork‘是静态文本,但由mailer.rb中的数据和硬编码到rspec文件中的数据替换。我只是在上面使用了一个占位符。
当我运行测试时,我得到:
OrgMemberMailer when an invite email gets sent should be delivered successfully
Failure/Error: @email.subject.should == "SocialNetwork - invitation to join <ORG>"
expected: "SocialNetwork - invitation to join <ORG>"
got: "SocialNetwork - invitation to join <ORG>" (using ==)
# ./spec/org_member_mailer_spec.rb:13:in `block (3 levels) in <top (required)>'对我来说,一切看起来都很好。我看不出为什么它不应该通过。
发布于 2012-03-13 15:59:36
尝试应该eql而不是应该==
https://stackoverflow.com/questions/9505174
复制相似问题