run のコールバックをテストする必要がありますがbefore_validation
、コールバックのみをテストしたいので、検証が失敗したときにテストを失敗させたくありません。現時点では次のようになります。
ActiveRecord::RecordInvalid:
Validation failed: Preview Invalid video ID
いろいろ試してきました。.save(:validate => false)
で実行されるため、使用時にコールバックメソッドが呼び出されないと思いますbefore_validation
。
しかし、私がこのようなことをすると:
show = FactoryGirl.build :show
show.should_receive :parse_url
show.save
私は得る
Failure/Error: show.should_receive :parse_url
(#<Show:0x007fd9954699e0>).parse_url(any args)
expected: 1 time
received: 0 times
モデル内の私のコードにもかかわらず:
before_validation :parse_url, :on => :save
また、メソッド呼び出しのほかに、フィールドがフォーマットされた後にフィールドを確認したいと考えています。
どんな助けにもとても感謝します。