如果您要选择测试框架,您将如何在 Cucumber 和 shoulda 之间做出决定?
这两个框架的主要区别是什么?
正如每个人都指出的那样,Cucumber 和 Shoulda 有完全不同的目标。您可以将 Cucumber 视为“从 10,000 英尺的角度观察”测试框架——您定义了一个广泛的功能或特定的用户交互,并确保一切都可以协同工作。Shoulda 用于单元测试——你选择一个特定的模型并彻底测试那个单独的部分的所有挑剔的小功能。
通常,您会希望结合使用这些类型的框架。例如,大多数广泛的高级测试都可以用 Cucumber 编写,但是当系统中有特别复杂或不透明的代码时,您可以使用 Shoulda 或 RSpec 进行深入测试以测试细节。
我没有看到其他人提到您实际上可以使用 Shoulda作为 Cucumber 的“测试引擎”。
他们有完全不同的目标。Shoulda 是一个建立在 Test::Unit 之上的单元测试扩展。
Cucumber 是一个验收/功能测试框架,可以使用 Test::Unit/RSpec/Whatever 进行断言。
例如,Shouda 可以直接与 RSpec 进行比较。
Cucumber 的目标是验收测试。Shoulda 是一个单元测试框架。
Test::Unit
Shoulda 是由测试宏、断言和助手组成的框架的扩展。Shoulda 是编写单元测试的一种更漂亮的方式。
Cucumber - RSpec 的“Story runner”的重写 - 是行为驱动开发的工具。它允许您以业务可读的特定领域语言编写可执行规范。Cucumber 更像是一种验收测试工具。
Cucumber 和 Shoulda 因此有不同的目标(即使 Shoulda 可用于 BDD)。