3

私はこのモデルコードを持っています:

validates_presence_of :setting_id  
validates_presence_of :user_id  
validates_presence_of :topic_id, if: :direct?

これらのrspecテストがあります:

it { should validate_presence_of :setting_id }
it { should validate_presence_of :user_id }
it { should validate_presence_of(:topic_id).if(:direct?) } 

最初の 2 つのテストは問題なく動作します。最後のエラーは次のようになります。
undefined method 'if' for #<Shoulda::Matchers::ActiveModel::ValidatePresenceOfMatcher:0x007fda6a5c6268>

検証の最後の存在のコードフラグメントに同様のテストを追加するにはどうすればよいですか(:topic_id).if(:direct?)

4

1 に答える 1

2

shoulda-matchers のソース コードから、:if条件がサポートされていないようです。メソッドのスタブ値を使用して、これを手動でテストする必要がありますdirect?

于 2012-07-11T05:09:54.837 に答える