TDD?BDD?我很困惑!我应该使用什么来进行测试,为什么?

9

嗯,我正在涉足测试领域!
但是我不知道该用什么 =/

Rspec + Shoulda?
Rspec + Steak?
Minitest?
Cucumber?
Capybara?
Coulda? (Cucumber 和 Shoulda 的混合)
Mini_shoulda? (Minitest 和 Shoulda 的混合)

天啊,太多选择了!我很困惑 <.< 我知道我想要一个小而简单的测试工具来测试我的未来的宝石和 Sinatra & Rails 应用程序。 你们都用什么工具?为什么?


1
我认为这个问题应该在programmers.stackexchange.com上提问。 - Pointy
3
@Pointy:我不这么认为。如果他的问题只是bdd vs tdd,那么是的,但他实际上是在问关于库的问题。 - ryeguy
@ryeguy - 好的,那就继续吧 :-) - Pointy
5个回答

7
如果你刚开始学习,应该选择默认项并遵循官方指南。重要的是你要进行测试实践。使用哪个测试库/框架不是最重要的,这只是一种次要的风格选择 - 最重要的是首先实践测试,并且最简单的方法是遵循官方指南所规定的“黄金路径”来开始测试你的Rails应用程序。
当你对测试Rails应用程序更加熟悉后,你将更好地评估现有的选项。我个人喜欢rspec和cucumber(目前是这样 - 我可能会改变我的偏好),但只有在对测试以及Rails有一定的了解之后,才能得出这种偏好。

5

我刚刚看到了这篇博客文章,其中提到:

似乎在Ruby中进行测试的通用方式是使用Rspec进行单元测试,使用Cucumber进行验收测试(更高级别的功能测试)。

然后它继续问道:“如果我们认为BDD很好,为什么不编写更适合BDD的格式来进行单元测试,即使用Cucumber格式的测试?”并将rspec单元测试与Cucumber中的单元测试进行比较。


3

在工作中,我们使用标准的RSpec和Cucumber组合。我不知道他们是如何决定使用这个特定的组合的,因为在我开始工作时它就已经存在并且对我们有用,所以没有必要改变。此外,它也是一个很常用的组合,所以通过Google等方式找到相关示例并不太难。

对于我基于1.9的私人项目,我认为从现在开始我将使用Minitest。它没有外部依赖,拥有简单的BDD DSL(require 'minitest/spec')以及其他好处,例如随机化。下面是一个很好的快速入门指南:

http://www.bootspring.com/2010/09/22/minitest-rubys-test-framework/


刚刚看了一下minitest,它看起来确实很有前途。我之前使用的是RSpec + Cucumber(以及Guard)。 - Michael De Silva

1

对于刚开始学习的人,我建议只使用RSpec。它不能做所有的事情,但它可以让你构建合理的单元测试和集成测试。当你遇到RSpec难以处理的限制时,让这个需求引导你选择其他工具。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接