我正在学习RSpec和Cucumber,这样我就可以在工作中为Rails网站编写测试了。
在学习的时候,我用了一本叫做“RSpec书: RSpec,黄瓜和朋友的BDD”的书。在此期间,RSpec用于粒度测试,Cucumber用于总体可用性测试。
这本书以一个简单的CLI游戏为例。
现在我进入了一个网络环境,想知道在网络环境中测试的心态是什么。
我已经知道我将为我的模型和控制器编写规范测试。
我假设Cucumber出现的地方是完整的特性测试,它将使用控制器和模型来完成。
如果我错了,请纠正我,但让我们假设有用户,邮政和喜欢的模型。
这些规范中的每一个都有一个模型规范+,但是有许多控制器规范。
然后,我将编写一个功能测试如下:
Feature: liking a post
As a user of abc.com
I want to like a post
So that I can show my friends在那里我会以某人的身份登录,找到一个帖子,并喜欢它?
有经验的人会分享在Rails应用程序上使用这些工具测试的方法的角度吗?
假设我必须实现上述情况,您会从充实特性测试开始,编写模型规范,然后编写控制器规范,然后编写代码吗?
发布于 2016-04-30 15:48:27
黄瓜在这里的作用是作为验收规格。它们从用户的角度测试应用程序作为一个整体的行为。它们涵盖了从路由到控制器、模型和视图的整个堆栈。
在BDD中,您经常使用验收测试,不只是像TDD那样在蛋糕上结霜,而是作为开发中所谓的外部驱动力。
在开发过程中,您将创建一个失败的规范,在设置路由、控制器或任何基础之前详细说明用户的情况。
将其与传统的TDD方法进行比较,您可以先将其分解为最小的单位,以获得快速的红、黄、绿循环。然后,您将开始将块堆叠在一起,测试将逐渐覆盖越来越多的堆栈。
然而,这并不意味着接受规范是唯一有用的规范形式--它们具有相当大的开销,并且很难测试边缘情况。因此,仅仅使用黄瓜并不是一个非常有吸引力的解决方案。
https://stackoverflow.com/questions/36956779
复制相似问题