後へ      Topへ      次へ

Pundit: Policies のテスト

サンプルプログラムでは、ユーザー認可に Pundit を使っています。

scope = Pundit.policy_scope(@ippan, Book)
→ @ippan ユーザーのスコープで、Book の一覧を取得します。

assert_includes scope, @book
→ scope の中に @book が含まれていればOK、無ければ例外を吐きます。

policy = BookPolicy.new(@ippan, @book)
→ @ippan ユーザーの @book に対するポリシーを取得します。

assert !policy.show?
→ show が認可されるかを調べ、!なのでその否定、
  つまり、show が認可されていなければOK、認可されていれば例外を吐きます。

参考リポジトリ: https://github.com/Bonv-dev/book_mgmt/commit/0bf3f2d
\test\policies\book_policy_test.rb


後へ      Topへ      次へ