RSpec:function和请求规格有什么区别?
Rspec的function规格和请求规格之间的概念区别是什么?
从function规格文档:
function规格是高级testing,旨在通过应用程序来执行function片段。 他们只能通过外部接口(通常是网页)来驱动应用程序。
而对于请求规格:
Request specs提供了Rails集成testing的一个简单的包装,并且被devise为通过完整的堆栈来驱动行为,包括路由(由Rails提供)和不存在(这取决于你)。 根据请求规格,您可以:
- 指定一个请求
- 在多个控制器中指定多个请求
- 在多个会话中指定多个请求
我知道function规格使用Capybara和请求规格不。 但是这几乎不可能有不同的概念。
概念上的区别是,你通常testing一个用户故事,所有的交互应该通过用户界面来驱动。 这就是Capybara进来的地方。一个请求规范仍然在testing你的应用程序的行为,并没有一个验收testing可以预期的可读性。 所以,function在于validationtesting的改进语法。
技术差异包括请求规范包装Rails集成testing,而function规格不包括。 这意味着您可以使用方法get,post,put,delete和assert来响应请求规范。 通过function规格,您应该通过浏览器驱动所有交互,并使用访问和断言页面方法。
我build议阅读github上的rspec-rails源代码中的feature_spec.feature。 我希望这有帮助。
- 如何使用正确的错误信息使用水豚断言元素的数量?
- Selenium :: WebDriver :: Error :: JavascriptError:等待evaluate.js加载失败的Firefox 23
- Rails / Rspec – 在控制器中testingredirect
- Rails / Rspec Maketesting通过http基本authentication
- 我怎样才能检查一个表单域使用水豚正确预填?
- 如何使用RSpec的should_raise与任何exception?
- 如何使用Capybara查询string获取当前path
- 如何用RSpec / RoRtestingAJAX请求?
- spec / rails_helper.rb与spec / spec_helper.rb有什么不同? 我需要它吗?