我是TDD的新手,非常喜欢它。我正在使用RSpec
我正在努力学习编写好的请求规范(一般来说(,但很少有关于如何测试索引方法的文章。
我发现了这篇文章:https://medium.com/@lcriswell/rails-api-request-specs-with-rspec-effectac468c4e,但我对测试api不感兴趣,而是测试具有视图的应用程序。
我应该在索引请求测试中包含什么?为什么要包含?
本文中的第一个规范非常棒,您可以将其用于测试常规控制器的响应。
如果你使用任何类型的授权(例如cancancan(,你可以为多种类型的用户测试相同的请求,并检查你是否获得了重定向或成功(你可能不得不模拟登录(。
为了测试正在渲染的视图,您可以尝试以下操作:
it { is_expected.to render_template(:index) }
如果您的操作分配了实例变量,您可以测试变量是否为某个值,如下所示:
expect(assigns(:foo)).to be true
如果您的操作响应不同的格式(HTML、json…(,您可以为每种格式编写不同的上下文,每次都可以通过更改请求(提示:对于您的规范中的JS,请像这样提交请求:get :index, xhr: true
(