У многих людей не получается использовать юнит-тесты в реальных проектах так легко, как это показывается на конференциях. Обычно это связано с тем, что код в реальных проектах использует внешние зависимости: базы данных, веб-сервисы и т.д.
В данной презентации рассказывается и показывается, как тестировать код, зависящий от внешних ресурсов. Живое кодирование на реальном проекте!
Слайды:
Real-life unit tests
View more presentations from Andrei Solntsev
Andrey Nikishaev
На слайдах вы показываете что работу с БД нужно эмулировать. Отчасти вы правы, так как для кода который не отвечает за работу с данными в БД(проще говоря модели) это реально не нужно. С другой стороны тестируя модели вы обязаны тестировать результат ваших действий на тестовой БД, так как без этого не будет самого теста модели.
К примеру если модель позволяет записывать данные с одним и тем же почтовым адрессом а в БД стоит индекс UNIQUE(типа MySQL) на это поле, то заменив БД моком вы получите ложно-положительный результат, что есть плохо.
Если вы хотите что бы тесты реально что то показывали, вы должны тестировать не только внутренний код, но и взаимодействие с внешним миром.
Антон Архипов
мне кажется автор не отрицал того что функциональные тесты тоже нужны
Andrei Solntsev
Собственно на последнем слайде и сказано, что недостаточно только одного вида тестирования.
pashtet
2011 год, а народ удивляется моками..