プログラミング的なSomething

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

editアクションとupdateアクションの認可に関して

editアクションとupdateアクションと認可の関連性

RESTfulなルーティングを実行している場合、レコード編集ではeditとupdateのアクションが発生します。 ブラウザでは、editの操作をテストできますので、認可の設定が活きているかの判定ができますが、updateメソッドをブラウザが直接叩くなどの操作はできません。 そのため、updateメソッドのテスト(今回は認可を取り上げた)を実施する場合には以下のような手当が必要になります。

RESTfulなルーティングは以下の設定をconfig/routes.rbに書き込みます

resources :hoges

生成されるアクションは以下リンク先の引用を参照してください。

RESTfulなURLを自動生成(resources)

URL アクション HTTPメソッド 説明

/XXXs/:id/edit(.:format) edit GET 編集画面を生成

/XXXs/:id(.:format) update PUT 更新処理

updateメソッドをRSpecで以下のように指定することで、updateまわりのテストが可能になります。

describe "update method" do
  before { put hoge_path(hoge) }

updateメソッドをテストするには、ブラウザではもちろん対応不可です。RSpecではこれに対し、直接PUTメソッドを実行することでupdateメソッドを使用したテストを実現しています。