В настоящее время я нахожусь в классе для тестирования программного обеспечения, где для нашего семестрового проекта мы должны выполнить несколько типов тестирования, таких как модульное тестирование и интеграционное тестирование. Для интеграционного тестирования профессор сказал использовать для нашего интеграционного тестирования макеты и библиотеки-имитаторы (такие как EasyMock и Mockito). Я довольно смущен, хотя. Интеграционное тестирование - это тестирование вне классов, модулей, сервисов и т. Д. Почему макеты и заглушки подходят для интеграционного тестирования, если вы тестируете несколько классов и сервисов?
unit-testing
testing
integration-tests
mocking
TheLegendOfCode
источник
источник
Ответы:
Если у вас есть часть функциональности, которая касается нескольких внешних компонентов, вы можете высмеивать все, кроме одного, чтобы изолировать и протестировать определенный компонент. Например, предположим, у вас есть функция, которая вызывает веб-сервис, а затем что-то делает с базой данных на основе результатов. Вы можете написать три интеграционных теста:
Если вы запустите все три теста, а 1 и 3 не пройдут, есть большая вероятность, что в вашем коде может быть ошибка, работающая с базой данных, поскольку единственным пройденным тестом был тест, использующий фиктивное соединение с базой данных.
В целом, интеграционные тесты не используют макеты, но я иногда делал что-то подобное.
источник
Не сразу понятно, что подразумевается под интеграционным тестом, но использование Fakes / Mocks / Test Doubles является допустимым методом для создания тестовых сценариев на всех уровнях в пирамиде тестов . [1] [2] [3]
источник