我什么时候应该使用 Rails 应用程序的规范,什么时候使用 Cucumber(以前的 rspec-stories)?当然,我知道两者如何工作并积极使用规范。但用Cucumber还是感觉怪怪的。我目前对此的看法是,当您为客户端实现应用程序并且还不了解整个系统应该如何工作时,使用 Cucumber 很方便。

但如果我正在做自己的项目怎么办?大多数时候,我知道系统的各个部分如何相互作用。我需要做的就是编写一堆单元测试。那么我需要 Cucumber 时可能出现哪些情况?

并且,作为相应的第二个问题:如果我写 Cucumber 故事,我必须写规范吗?难道不是对同一件事进行双重测试吗?

有帮助吗?

解决方案

如果您还没有准备好,你可能想看看丹北的优秀文章,是什么在一个故事?作为起点。

我们有黄瓜故事的两个主要用途。首先,因为故事的形式是非常具体的它有助于集中他想要建造的功能产品所有者的衔接。这是用故事的“人谈话令牌”,我们是否不执行代码的故事将是有价值的。其次,当处理工作不够好,我们有完整的故事之前的 的我们开始编写(更多是我们争取比日常现实的理想的)的功能,你有你的验收标准规定了明确你知道什么和多少来构建。

在我们的Rails工作,黄瓜的事例并不代替RSpec的单元测试。这两个齐头并进。在实践中,单元测试往往驱动模型和控制器的发展,故事往往会带动的发展观点(我们往往不写我们的观点RSpec的),并提供该应用的一个很好的测试作为一个整体从用户的角度。

如果你是独自工作,通讯方面可能不是有趣的你,但你从黄瓜获得集成测试可能。如果你利用 webrat ,写黄瓜可以快速,无痛为您大量的基本功能。

其他提示

把它看成是一个周期:

写您的黄瓜功能,然后同时开发该功能的作品,写规范来完成的各个组件。继续完成的规格,直到你已经写了足够的功能的功能传递,然后再编写一个功能。

我的看法是,这是一个坏主意,在大多数情况下使用黄瓜由于生产力的语法你招致的费用。我的主题何必用黄瓜测试?

一个黄瓜故事是多应用程序正在解决,整体问题的描述,而不是如果代码工作的各个位(即单元测试)。

由于艾比介绍,这几乎是一个的应用程序应满足的要求列表,是与你的客户沟通非常有帮助,以及作为直接检验的。

现在,您可以将 rspec 与 Capybara 和 Selenium Webdriver 一起使用,而无需构建和维护所有 Cucumber 故事解析器。这是我的推荐:

  1. 写下你的故事
  2. 使用 RSpec,我将创建一个集成测试:规格/集成/socks_rspec.rb
  3. 然后我将创建一个集成测试,其中包括一个新的描述和每个场景的块
  4. 然后,我将实现获得集成测试所需的最小功能,同时深入回溯(控制器和模型等),我将对控制器和模型进行 TDD。
  5. 当您回来时,您的集成测试应该通过,您可以继续向集成测试添加步骤
  6. 重复

然而,需要注意的一件事是,控制器和集成测试有重叠,这可能是不必要的,因此您必须使用您的最佳判断,这样您就不会浪费时间。

另外,一旦你找到了自己的最佳状态,你就会发现使用 BDD 进行开发是最令人愉快的,在此之前,如果你觉得自己做得不够完美,也不要感到内疚,也不要想太多。你会做得很棒!

  

但是,如果我做我自己的项目是什么?对于大多数的时候,我知道如何系统的部分进行交互。所有我需要做的就是写一堆的单元测试。可能是什么情况,当我需要黄瓜呢?

您还需要黄瓜。你需要它来记录你怎么看到系统的工作,你需要它,以确保当你改变的东西你没有破坏功能。

在换句话说,你需要为同样的原因黄瓜的故事,因为你需要单元测试 - 他们只是在更高的抽象级别上工作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top