2012-02-29 11 views
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すべき

+0

が指定に隠れ小文字があったようです==必要があります。そして、ライン: @ email.encoded.should =〜あなたがSocialNetwork/ にに招待されました/に変更する必要がありました:email.encoded.match @ (/あなたがに招待されましたソーシャルネットワーク上)/ should_not be_nil これですべてがパスします! YAY !! – skipZero

答えて

関連する問題