2

一括割り当てで保護された属性を更新するときにエラーが発生するかどうか、コントローラーでテストしようとしています。

expect do 
  post :create, account: {protected_attr: "blahblah"}
end.to raise_error

ただし、Rspec は次のように述べています: 予想される例外ですが、何も発生しませんでした

スペックファイルの場合、次のようにexpectブロックを削除します

post :create, account: {protected_attr: "blahblah"}

仕様を実行すると、例外が発生します。

ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: protected_attr

rspec の raise_error が例外を捕捉しないのはなぜですか?

4

2 に答える 2

0

これはあなたの質問に対する正確な回答ではありませんが、問題を解決する可能性があります。コントローラーテストでテストする必要はありません。モデル仕様でテストするだけです。これは Rails 3.x のモデルの問題です。Rails 4 では、別のアプローチが使用されます。

于 2013-05-15T09:04:31.723 に答える