【问题标题】: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

    【讨论】:

    • 必须支持这个。就我个人而言,我发现 Rspec 比 Test::Unit 更易于使用。由于所有内容都保存在spec/ 目录中,因此它不会对应用程序造成太大影响。另外,对于机械师的流行替代品,请查看 Factory Girl。 github.com/thoughtbot/factory_girl_rails
    【解决方案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?

        【讨论】:

          猜你喜欢
          • 2012-05-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-06
          • 1970-01-01
          • 2011-07-21
          • 1970-01-01
          相关资源
          最近更新 更多