У меня есть тест 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)>'
Для меня все выглядит хорошо.Я не вижу причин, по которым это не должно пройти.