我读到控制器规格已经失宠,目前的建议是使用功能和请求规格。我发现功能规格对于快乐路径测试一直很有效,但是我想要测试的特殊情况有些困难。例如,我有一个用户拥有的资源索引。此列表包括销毁每个资源的按钮。用户只能看到自己的资源。我想添加一个试图破坏属于其他人的测试失败的测试。问题是该列表不会包含任何其他人的项目,因此没有适当的链接告诉capybara点击。在控制器测试中,我可以直接在资源的路径上发出DELETE
,但最好的我可以告诉它不是功能规范中的一个选项。我错过了什么吗?如果我想要在快乐路径之外进行覆盖,我是否还需要实现请求规范?我希望保留请求规范来覆盖我的API端点。
答案 0 :(得分:0)
从我的角度来看,权限规范不应该作为功能规范实现。你的想法完全有意义,你可以真正检查的唯一一件事就是你没有看到任何由其他用户制作的实体。您的逻辑困难就像+1点,这些场景应该通过其他规范类型进行测试。另外......功能规格很昂贵,我绝不会在功能上进行这种“深度”测试。