Часто мне приходилось слышать, что кто-то послушал лекцию или прочитал статью про юнит-тесты, вроде как всё понял; решил сам попробовать — и ничего не получилось.
Почему так получается?
По-видимому, причина в том, что юнит-тесты обычно демонстрируют на простых примерах. А в жизни код сложнее. В реальных проектах код использует базы данных, веб-сервисы, код, написанный другими компандами и т.д.
В этом видео на живом примере показано, как писать юнит-тесты для кода с внешними зависимостями.
www.devclub.eu/2011/06/06/asolntsev-real-life-unit-tests
Слайды можно найти здесь.
PS. Для тех, кто не в курсе: в Эстонии выборы проводятся электронным путём, то есть люди могут голосовать через интернет. В презентации автор показывает применение юнит-тестов на своём приложении для показа результатов выборов. Дополнительный юмор тут в том, что во время последних выборов аналогичное официальное приложение упало на несколько часов, что вызвало бурные обсуждения в обществе, а компания-подрядчик была оштрафована на крупную сумму. В презентации приложении прекрасно работает при такой же нагрузке.
Почему так получается?
По-видимому, причина в том, что юнит-тесты обычно демонстрируют на простых примерах. А в жизни код сложнее. В реальных проектах код использует базы данных, веб-сервисы, код, написанный другими компандами и т.д.
В этом видео на живом примере показано, как писать юнит-тесты для кода с внешними зависимостями.
www.devclub.eu/2011/06/06/asolntsev-real-life-unit-tests
Слайды можно найти здесь.
PS. Для тех, кто не в курсе: в Эстонии выборы проводятся электронным путём, то есть люди могут голосовать через интернет. В презентации автор показывает применение юнит-тестов на своём приложении для показа результатов выборов. Дополнительный юмор тут в том, что во время последних выборов аналогичное официальное приложение упало на несколько часов, что вызвало бурные обсуждения в обществе, а компания-подрядчик была оштрафована на крупную сумму. В презентации приложении прекрасно работает при такой же нагрузке.