Самое простое введение в юнит-тесты
October 6, 2011 in Ruby on RailsПроблема с написанием юнит-тестов для меня выражается вот в чем:
Про юнит-тесты сказано, написано и надумано столько, что очень легко ошибиться и воспринимать их как нечто сложное и неестественное.
В этом плане по-моему очень верно подмечено, что “юнит-тесты похожи на подростковый секс”.
На самом же деле, юнит-тесты – невероятно простой и облегчающий жизнь подход.
Итак, неизбежно при написании кода ты делаешь приблизительно такие действия:
- Напишешь немного кода
- Подготовишь входные данные
- Запустишь его
- Проверишь, что он работает и делает то, что ты ожидал
- Повторишь пп. 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
Все! Больше ничего не нужно знать, чтоб начать писать тесты. Остальное постигается на практике.
Натыкаешься на копипасту при создании объектов? Узнаешь о фабриках.
Натыкаешься на проблемы со сложными связями между объектами? Узнаешь о моках, а заодно о внедрении зависимости.
И так далее.
Но по большому счету, тесты – всего лишь формулизированная проверка того, что код делает то, что от него ожидается. Никакого волшебства.
Понравился пост? Купи мне кофе