在RSpec中,什么是Request Specs应该测试?

时间:2014-10-08 18:51:50

标签: ruby-on-rails rspec request

Rspec noob在这里,只是想提高我的测试覆盖率。

我遇到的一个非常基本但又重要的问题是:哪种测试去哪里? 模型测试很简单。我只需要测试模型方法和验证的功能。查看测试似乎很简单。这只是测试每个视图呈现所需的数据。

让我感到困惑的是我的Request Specs中究竟是什么。我的大多数铁杆经验都来自Michael Hartle的Rails教程。他的请求规范似乎基于用户可以在应用程序中执行的一系列操作。但他还包括测试,看起来他们应该在View Specs中,我正考虑转移到其他地方。

如果有人可以帮我理解请求中的哪种测试,那将会有所帮助。

1 个答案:

答案 0 :(得分:2)

来自RSpec docs

  

请求规范为Rails'提供了一个薄的包装器。集成测试,是   旨在通过完整堆栈驱动行为,包括路由   (由Rails提供)并且没有存根(这取决于你)。

     

根据请求规范,您可以:

     
      
  • 指定单个请求
  •   
  • 跨多个控制器指定多个请求
  •   
  • 跨多个会话指定多个请求
  •   
     

有关详细信息,请查看有关集成测试的rails文档。

来自Rails' docs on integration tests

  

集成测试用于测试任意数量的控制器之间的交互。它们通常用于测试应用程序中的重要工作流程。

如果您的测试与单个视图的呈现方式有关(应该与任何实际的HTTP请求完全分离),那么它可能更适合作为视图测试。如果它与多个视图或多个请求有关,那么集成测试可能更合适。