为什么我需要使用minitest / autorun?

时间:2015-12-16 17:26:35

标签: ruby-on-rails ruby unit-testing rubygems minitest

为什么我需要minitest/autorun代替test/unit来生成单元测试

require 'test/unit'

class Brokened
  def uh_oh
    "I needs fixing"
  end
end

class BrokenedTest < Minitest::Test
  def test_uh_of
    actual = Brokened.new
    assert_equal("I'm all better now", actual.uh_oh)
  end
end
  

运行上面的代码,解释器引发警告

     
    

您应该要求'minitest / autorun'而不是

  

1 个答案:

答案 0 :(得分:2)

您的代码示例将以NameError结尾:uninitialized constant Minitest

您有两种可能性:

  • test/unitTest::Unit::TestCase
  • 结合使用
  • require 'minitest/autorun'Minitest::Test结合使用。
不推荐使用

test/unit,建议使用minitest(MiniTest更快更小)。

如果你切换测试宝石,你必须改变一些东西:

  • require "test/unit"替换为require "minitest/autorun"
  • Test::Unit::TestCase with替换为Minitest::Test
  • 没有assert_nothing_raiseddetails
  • assert_raise变为assert_raises
  • 或许其他一些问题

您可以使用require 'minitest'代替require 'minitest/autorun' - 您将不会遇到语法错误,但也没有测试执行。如果要执行测试,则必须自己调用它们(请参阅minitest-a-test-suite-with-method-level-granularity