Методы тестирования отчетов MiniTest/Shoulda и Shoulda/Context?

Я отделяюсь от rspec и попадаю в MiniTest и должен. Я не могу понять, как методы тестирования работают с должным...

class TestKata <  MiniTest::Test
  context 'Kata#n00bify' do

    should 'replace "to" and "too" with the number 2, even if
            they are only part of a word (E.g. today = 2day)' do
      assert_equal '2', Kata.n00bify('too')
      assert_equal '2', Kata.n00bify('too')
      assert_equal '2day', Kata.n00bify('today')
    end

    should 'replace "for" and "fore" with the number 4' do
      assert_equal '4', Kata.n00bify('for')
      assert_equal '4', Kata.n00bify('fore')
    end

   # ...

  end
end

Вот результаты теста:

Failure:
TestKata#test_: Kata#n00bify should replace "for" and "fore" with the number 4.  [/.../test_n00b.rb:31]
Minitest::Assertion: Expected: "4"
  Actual: nil


Failure:
TestKata#test_: Kata#n00bify should replace "to" and "too" with the number 2, even if
            they are only part of a word (E.g. today = 2day).  [/.../test_n00b.rb:25]
Minitest::Assertion: Expected: "2"
  Actual: nil

Я не понимаю, где методы тестирования? Обратите внимание на результаты теста TestKata#test_<nothing>:. Мне кажется некрасивым. Хотелось бы, чтобы это читалось только в контексте «должен». то есть:

Failure:
Kata#n00bify should ...

Что мне не хватает? Цените помощь!


person binarymason    schedule 19.11.2015    source источник


Ответы (1)


Shoulda предоставляет альтернативный синтаксис для определения методов тестирования с использованием блоков should. Minitest требует, чтобы имена тестовых методов начинались со строки "test_", поэтому Shoulda динамически определяет методы для каждого блока, используя это соглашение. Когда вы пишете что-то вроде should "foo", вы получаете тестовый метод с именем test_: TestClassName#foo.

Что касается вывода, то существует множество драгоценных камней, реализующих альтернативное форматирование. Вы можете попробовать посмотреть на minitest-reporters, который является одним из самых полнофункциональных и лучше всего поддерживаемых.

person Chris Kottom    schedule 20.11.2015