我知道如何在 Rails 中运行功能/集成测试,这个问题是关于最佳实践的。假设使用四个不同的用户角色执行授权:
- 基本的
- 编辑
- 行政
- 极好的
这意味着对于每个操作,最多可能有五种不同的行为(4 个角色 + 未经身份验证/匿名)。我采取的一种方法是测试每个动作的每个角色,例如:
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
但这显然会导致大量的测试(站点上的每个控制器操作确实需要测试五次)。相反的方法是单独测试授权机制,然后在测试每个操作(设置时)之前验证为超级,并且只测试每个页面的一个版本。
我尝试了几种具有不同程度特异性的方法,但对任何事情都没有完全满意。当我测试更多用例时,我会感觉更舒服,但是测试代码的数量和抽象的难度一直是关闭的。有没有人对此问题感到满意的方法?