2
私は電子メールを送信するために書かれたrspecテストを持っています。アプリケーションのユーザーの組織名で埋められる動的なフィールドが含まれています。私はある名前から別の名前にテキストを変更し、差異を反映するために仕様ファイルを更新しましたが、今はそれは合格しません。ここでは、テスト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 == ["[email protected]"]
@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」静的なテキストですが、RSpecのファイルにコード化されたデータmailer.rb中とハードの両方に置き換えられています。私はちょうど上記のプレースホルダとして使用しました。私がテストを実行すると
、私が手:
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)>'
私にとっては、すべてが正常に見えます。私はそれが通過してはならない理由はないと思う。代わりにEQLすべき
が指定に隠れ小文字があったようです==必要があります。そして、ライン: @ email.encoded.should =〜あなたがSocialNetwork/ にに招待されました/に変更する必要がありました:email.encoded.match @ (/あなたがに招待されましたソーシャルネットワーク上)/ should_not be_nil これですべてがパスします! YAY !! –
skipZero