Rails で機能/統合テストを実行する方法を知っています。この質問はベスト プラクティスに関するものです。承認が 4 つの異なるユーザー ロールを使用して実行されるとします。
- 基本
- 編集者
- 管理者
- 素晴らしい
これは、アクションごとに最大 5 つの異なる動作が可能であることを意味します (4 つのロール + 非認証/匿名)。私がとったアプローチの 1 つは、すべてのアクションですべてのロールをテストすることです。次に例を示します。
test_edit_by_anonymous_user
test_edit_by_basic_user
test_edit_by_editor_user
test_edit_by_admin_user
test_edit_by_super_user
しかし、これは明らかに多くのテストにつながります (サイト上のすべてのコントローラー アクションは、実際には 5 回テストする必要があります)。反対のアプローチは、承認メカニズムを分離してテストし、すべてのアクションを (セットアップ時に) テストする前にスーパーとして認証し、各ページの 1 つのバージョンのみをテストすることです。
さまざまな程度の特異性でいくつかのアプローチを試しましたが、完全に満足できるものはありませんでした。より多くのケースをテストしていると、より快適に感じますが、テスト コードの量と抽象化の難しさには頭が下がります。誰もが満足しているこの問題へのアプローチを持っていますか?