ruby on rails - RSpec:特性和请求规范的区别是什么?



Rspec的特性规范和请求规范在概念上有什么区别?

来自特性规范文档:

特性规范是用于测试功能片段的高级测试通过应用程序。它们应该只通过它来驱动应用程序外部接口,通常是网页。

对于请求规格:

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

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

我知道功能规范使用Capybara,而请求规范不使用。

概念上的区别在于,您通常是在测试一个用户故事,所有的交互都应该通过用户界面驱动。这就是水豚的作用所在。请求规范仍然在测试应用程序的行为,并且不具有验收测试所具有的可读性。因此,特性的存在是为了改进验收测试的语法。

技术差异包括请求规范包含Rails集成测试,而功能规范没有。这意味着通过请求规范,您可以对响应使用get、post、put、delete和assert方法。有了特性规范,你应该通过浏览器驱动所有的交互,并对页面使用visit和assert等方法。

我建议阅读feature_spec。

相关内容

  • 没有找到相关文章

最新更新