Сложно понять разницу, потому что везде по разному написано.
Правильно ли я понимаю?
Unit (модульные) тесты - это тесты какого-то класса/функции. Если требуется зависимость - мокаем её.
Интеграционные тесты - это black box тестирование обращений микросервису. Тут мы можем создать контейнеры в докере для БД и сервера приложения, вызвать ручки API, проверить их ответ и проверить что в БД правильно создаются/обновляются какие-то записи. Тут уже ничего не мокаем.
e2e тесты - это тесты с точки зрения пользователя.
На самом деле они очень похожи на интеграционные тесты, но со следующими изменениями:
- Тестируется вся система целиком, а не какой-то отдельный микросервис.
- Если пользователи работают с интерфейсом (например веб интерфейсом), надо тестировать не вызовы API, а взаимодействие с UI приложения (selenium etc.).