Подделки, форки и фальшивки

Тестовый дубликат заменяет реальную зависимость в тесте. Заглушка возвращает стандартные ответы и ничего не проверяет. Моковица — это заглушка, которая также записывает, как она была вызвана, чтобы тест мог подтвердить факт взаимодействия — "charge was called once with 20" . Фейк — это работающая, упрощенная реализация, например, база данных в памяти или API, хранящий состояние.

Как это работает

Заглушки подходят для тестов, которым достаточно получить ответ от зависимости. Имитаторы подходят для тестов, где сам вызов является проверяемым поведением. Подделки подходят для тестов, проверяющих последовательность действий — создание, затем чтение, затем обновление — где готовые ответы должны предвосхищать каждый шаг. В HTTP-тестировании все три типа тестов часто условно называют "mock APIs" .

Заблуждение

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

Попробуйте здесь.

Эта тестовая среда — подделка в строгом смысле слова: записи сохраняются в вашей песочнице, поэтому POST-запрос виден для последующего GET-запроса, версии обновляются, и запасы заканчиваются — поведение, недопустимое для заглушки.

Источники

Другие термины

Читать страницу на английском

Все термины · Приёмы тестирования · Все 39 mock REST API

Последнее обновление