2012-01-05 14 views
3

mongoidを使ってレールで検証を行ったときに問題が発生しました これは、たとえばPerson Modelと私のRspecテストです。Rspec検証テスト(Mongoid)

class Person 
    include Mongoid::Document 

    validates :first_name , :presence => true 
    validates :last_name , :presence => true 

end 



[ :last_name, :first_name ].each do |attr| 
    it "must have a #{attr}" do 
    p = Person.new 
    p.send("#{attr}=","") 
    p.should_not be_valid 
    p.errors[attr].should == [ "can't be blank" ] 
    end 
end 

しかし、戻り値があるため、このテストは失敗し、[「空白にすることはできません」、「空白にすることはできません」]

expected: ["can't be blank"] 
     got: ["can't be blank", "can't be blank"] 

なぜこの2つのエラーがあります記録?? この問題は、多くのモデルや他の検証ルールでテストします。私はあなたが空の文字列にあなたのフィールドのいずれかを設定しているし、他はnilのデフォルト値を保持しているためにです毎回助け

エリック

答えて

0

ため、同じ結果

Thxをしました。そのため、毎回両方の検証が失敗します。

+0

しかし、私はこの問題をレールコンソールのマニュアル()でテストすると1つのエラーしか出ません.p = Person.new p.valid? p.error [:first_name] got => ["空白にできません"] – bulleric

+0

興味深いです。 :-) –

+0

うん、それは紛らわしい...私のコンソールで私は1つのエラー(各姓と姓)を持っているええ、私のテスト環境でエラーまたはfailconfigurationがあることができます... - – bulleric

関連する問題