Подтвердить что ты не робот

Minitest, test:: unit и rails

Я где-то читал, что "minitest" - это "новый тест:: unit для ruby ​​1.9.2+".

Но ruby ​​1.9.3 включает в себя как test:: unit, так и minitest, это правда?

В тестировании рельсов по умолчанию, как указано в Rails-тестировании, такие вещи, как ActiveSupport::TestCase, ActionController::TestCase, используются с помощью Test::Unit или Minitest?

В руководстве по направляющим показаны примеры с тестами, которые определены следующим образом:

test "should show post" do
  get :show, :id => @post.id
  assert_response :success
end

Этот синтаксис test string в отличие от определения методов с именами типа test_something - не упоминается в документах для Test::Unit или Minitest. Откуда это? Является ли Rails добавлением его, или он на самом деле является частью... любого тестирования lib rails?

PS: Пожалуйста, не говорите мне, "просто используйте rspec". Я знаю о rspec. Я пытаюсь изучить альтернативы stdlib в контексте рельсов.

4b9b3361

Ответ 1

Существует модуль <совместимость > <20 > , который поставляется с Minitest, так что вы можете (предположительно) использовать существующие тесты Test:: Unit как есть. Вероятно, это модуль Test::Unit, который вы видите.

Как и в рельсах 3.2.3, тесты, созданные генератором, включают rails/test_help, который включает test/unit.

Синтаксис test "something" do - это расширение рельсов. Он определен в ActiveSupport::Testing::Declarative, который require 'd на rails/test_help.

Ответ 2

Это, возможно, немного тангенциальный ответ, но что касается вашего комментария rspec... Возможно, вам стоит взглянуть на minitest/spec, который предоставляет синтаксис spec-эффекта в stdlib в 1.9.x.

http://bfts.rubyforge.org/minitest/MiniTest/Spec.html