【问题标题】:Testing Framework for Rails 3?Rails 3 的测试框架?
【发布时间】:2011-05-31 11:36:46
【问题描述】:
我们实际上并没有在我们的应用程序中使用测试(我知道这很糟糕也很可悲)。我读过很多关于 Test::Unit、Shouda、minitest 和新的 Bacon 的文章。但我还不能下定决心。基本上我们的需求是:
- 使用 watir(喜欢它)
- 简单易学
- 不要乱用应用程序(如 Rspec 生成器 - 不反对 rspec)
- 与 rails 3 集成
- 没有客户必须阅读它,只有开发人员。
你怎么看?
【问题讨论】:
标签:
ruby-on-rails
ruby
ruby-on-rails-3
unit-testing
testing
【解决方案1】:
我实际上放弃了Test::Unit,转而使用RSpec 2。只有开发人员必须阅读我们的测试,但 RSpec 似乎鼓励比Test::Unit 更好的结构化测试。不过,它与大多数其他测试框架不同,因此有一个小的学习曲线,但仅限于最初的几天。
我也强烈建议你不要使用 Rails 的固定装置,你可以看看Machinist。
【解决方案2】:
我会选择 minitest 作为它在 Ruby 1.9.2 中的默认设置(替换 test/unit)并使用 test/unit 格式,因为它是很多开发人员都熟悉的
【解决方案3】:
您的最后一个要点让我推荐 Test::Unit。如果您不需要客户端可读的测试,Test::Unit 会更直接,并且在您开始之前不需要太多的测试框架知识。看起来它与 Watir 集成(尽管我没有为此使用它)。
我相信你会得到很多关于你列出的每个框架的建议,我会说选择一个并开始编写测试!
【解决方案4】:
我会在这里推荐Test::Unit/Minitest 和其他人。您还可以安装Shoulda 或使用this 之类的东西来为Test::Unit 提供如下语法:
class TestStuff < Test::Unit::TestCase
def setup
@foo = Klass.new
end
should "be of class Klass" do
assert_equal Klass, @foo.class
end
end
你有没有想过用 Capybara 代替 Watir?