Rspec的feature specs和request specs在概念上有什么不同?
从功能规范文档中:
功能规格是高级测试,旨在测试功能的各个部分
对于要求规格:
请求规范为Rails的集成测试提供了一个薄薄的包装,并且
- 指定单个请求
- 跨多个控制器指定多个请求
- 跨多个会话指定多个请求
我知道功能规格使用Capybara,而请求规格不使用.但这几乎不值得有不同的概念.
Rspec的feature specs和request specs在概念上有什么不同?
从功能规范文档中:
功能规格是高级测试,旨在测试功能的各个部分
对于要求规格:
请求规范为Rails的集成测试提供了一个薄薄的包装,并且
- 指定单个请求
- 跨多个控制器指定多个请求
- 跨多个会话指定多个请求
我知道功能规格使用Capybara,而请求规格不使用.但这几乎不值得有不同的概念.
概念上的区别在于,你通常在测试一个用户故事,所有的交互都应该通过用户界面来驱动.这就是水豚的作用.请求规范仍在测试应用程序的行为,并且没有验收测试应有的可读性预期.因此,验收测试的改进语法有一个特点.
技术上的差异包括请求规范包装Rails集成测试,而功能规范没有.这意味着对于请求规范,您可以使用get、post、put、delete和assert方法来响应.使用功能规格,你应该通过浏览器驱动所有的交互,并对页面使用访问和断言等方法.
我建议阅读github上rspec rails源代码中的feature_spec.feature.我希望这有帮助.