为什么我需要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

最佳答案

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

您有两种可能性:

  • test/unit
  • 结合使用Test::Unit::TestCase
  • require 'minitest/autorun'结合使用Minitest::Test

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

    如果您切换测试 gem ,则可能必须更改一些其他内容:
  • require "test/unit"替换require "minitest/autorun"
  • Test::Unit::TestCase with替换Minitest::Test
  • 没有assert_nothing_raised(details)
  • assert_raise变为assert_raises
  • 也许还有其他问题

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

    关于ruby-on-rails - 为什么需要使用minitest/autorun?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34318345/

    10-12 22:42