Самое простое введение в юнит-тесты

October 6, 2011 RSpec Ruby Ликбез юнит-тестирование юнит-тесты

Проблема с написанием юнит-тестов для меня выражается вот в чем:

Про юнит-тесты сказано, написано и надумано столько, что очень легко ошибиться и воспринимать их как нечто сложное и неестественное.

В этом плане по-моему очень верно подмечено, что “юнит-тесты похожи на подростковый секс”.

На самом же деле, юнит-тесты – невероятно простой и облегчающий жизнь подход.

Итак, неизбежно при написании кода ты делаешь приблизительно такие действия:

  1. Напишешь немного кода
  2. Подготовишь входные данные
  3. Запустишь его
  4. Проверишь, что он работает и делает то, что ты ожидал
  5. Повторишь пп. 2-4 с другими входными данными.

Так вот, юнит-тест - это пункты 2-4, только записанные в специальном формате.

describe Something do
  it "should do what i want it to do" do
    @something = Something.new
    @something.do_something.should == what_i_expect
  end

  it "should do something else" do
    et_cetera
  end
end

Все! Больше ничего не нужно знать, чтоб начать писать тесты. Остальное постигается на практике.

Натыкаешься на копипасту при создании объектов? Узнаешь о фабриках.

Натыкаешься на проблемы со сложными связями между объектами? Узнаешь о моках, а заодно о внедрении зависимости.

И так далее.

Но по большому счету, тесты – всего лишь формулизированная проверка того, что код делает то, что от него ожидается. Никакого волшебства.

Buy Me a Coffee at ko-fi.com