【发布时间】:2012-02-04 07:38:04
【问题描述】:
我正在开发一个 Ruby gem,它旨在用作另一个 Ruby/Rails 应用程序的库或 API(没有 CLI)。
我计划使用 Cucumber/Rspec 在 BDD 概念中使用外部开发此 gem。在编写 Cucumber 特性之前,我做了一些研究,发现 Cucumber 主要用于指定 gems 的用户界面,而不是指定 API。让我知道您将使用哪些工具来应对这种情况以及您将如何使用它。
【问题讨论】:
我正在开发一个 Ruby gem,它旨在用作另一个 Ruby/Rails 应用程序的库或 API(没有 CLI)。
我计划使用 Cucumber/Rspec 在 BDD 概念中使用外部开发此 gem。在编写 Cucumber 特性之前,我做了一些研究,发现 Cucumber 主要用于指定 gems 的用户界面,而不是指定 API。让我知道您将使用哪些工具来应对这种情况以及您将如何使用它。
【问题讨论】:
通常 Cucumber 规范涵盖软件的高级使用场景,而 RSpec 涵盖较低级别的类的接口。
当您想让非技术客户/产品负责人帮助您编写验收测试时,Cucumber 很有用 - 您可以使用 Cucumber 为他们构建业务可读的 DSL。
只要您的程序 (gem) 的客户是程序员并且您不提供任何用户界面(仅 API),您可以使用 RSpec 而不要添加 Cucumber。 RSpec 规范将涵盖您 API 的所有公共方法,并为 gem 提供良好的规范。
如果你想覆盖产品的复杂使用场景(当用户调用多个方法来达到结果时),添加 Cucumber 规范可能很有用,但你也可以使用 RSpec 编写高级测试。
总结:gem 开发 Cucumber 看起来有点矫枉过正,我只会从 RSpec 开始。
【讨论】: