Использование "заглушек" (Mocks)

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

В этой ситуации сбой сервера, с которого должны загружаться данные, может привести к несоответствию ожидаемого и действительного результата и мы получим fake-negative результат. Кроме того, даже если исключить вероятность сбоя, то постоянное поддержание работающего сервера на момент модульного тестирования также является неоправданно затратным.

Вместо этого мы можем создать объект-заглушку (mock-объект), который будет заменять собой внешний источник данных, возвращая нашему тестируемому методу определенный, строго заданный результат, обеспечивая таким образом предсказуемость результатов работы тестируемого модуля.

Подробнее об использовании заглушек можно почитать здесь:

http://habrahabr.ru/post/136466/

http://spring.io/blog/2007/01/15/unit-testing-with-stubs-and-mocks/

http://www.javaworld.com/article/2074508/core-java/mocks-and-stubs---understanding-test-doubles-with-mockito.html

Last updated