サンプルプログラムでは、ユーザー認可に 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