Почему мне нужно использовать 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 ответ:
Ваш пример кода закончится на 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 )