Почему мне нужно использовать 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 5

1 ответ:

Ваш пример кода закончится на NameError: uninitialized constant Minitest.

У вас есть две возможности:

  • используйте test/unit в сочетании с Test::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_raised (подробности )
  • assert_raise становится assert_raises.
  • Возможно, некоторые другие вопросы

Вы можете использовать require 'minitest' вместо require 'minitest/autorun' - Вы не получите синтаксической ошибки, но также нет выполнения теста. Если вы хотите выполнить тесты, вы должны вызвать их самостоятельно (см. minitest-a-test-suite-with-method-level-granularity )