Нужна помощь в разграничении издевательств и тестовых водителей - PullRequest
1 голос
/ 22 мая 2019

Я запутался, если не сказать больше.Возможно, я ошибаюсь с Моксами, не так с тест-драйверами или, может быть, и с тем, и с другим.

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

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

Мне кажется, что тестовые драйверы звучат как тип Mock, но являются ли Mocks именно модульным тестированием?

В чем разница между этими двумя?

1 Ответ

1 голос
/ 22 мая 2019

Я понимаю это следующим образом:

Макет:

У вас есть стандартное многоуровневое приложение, например, Controller-> Service-> Repository.Вы хотите проверить его.Таким образом, вы используете mocks и внедряете Repository Mock в Service, чтобы вы могли изолировать тестирование Service.

Test Driver:

У вас то же приложение, Controller-> Service-> Repository.Вы выполнили все модульные тесты, и теперь вы хотите проверить уровень репозитория.Не имеет смысла использовать Mocks во время тестирования репозитория, потому что они не покажут, правильны ли ваши sql запросы.Итак, пришло время для интеграционных тестов.Также вы не хотите тестировать всю систему (которая может состоять из 100 сервисов), вы хотите изолировать свое приложение, поэтому вы раскручиваете, скажем, Docker-контейнер с базой данных (или встроенной базой данных, такой как h2) и запускаете вашзапросы к этой базе данных только для тестирования.

Тот же пример применим для клиентов других служб, например, вы хотите получить что-то по HTTP, и вместо вызова реальной службы вы запускаете MOCK SERVER, например, wiremock.

Драйверыявляются модулями, которые действуют как временная замена для вызывающего модуля и дают тот же вывод, что и у фактического продукта.

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

Напомним:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...