【问题标题】:Why do i need to use minitest/autorun?为什么我需要使用 minitest/autorun?
【发布时间】:2015-12-17 03:30:39
【问题描述】:

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

【问题讨论】:

  • 因为 test/unit 已被弃用:stackoverflow.com/a/28598052/2483313
  • @spickermann 我想知道它的原因,我知道如果我替换它代码会起作用,但我必须这样做。任何见解

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


【解决方案1】:

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

你有两种可能:

  • test/unitTest::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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 2019-06-09
    • 2011-07-05
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多