Один із важливих плюсів АІ в розробці - це можливість швидше і ефективніше покривати код тестами. Якщо з unit-тестами все зрозуміло: залежності можна замокати, ізолювати окремий модуль і перевірити його поведінку, то з інтеграційними та e2e-тестами все складніше.
Такі тести мають перевіряти, як система поводиться в умовах, максимально наближених до реального середовища і залежності у вигляді бази даних, кешу і т.д., мають відображати реальну поведінку.
На даний момент найкраще, з чим я зіштовхувався для керування залежностями, - це Testcontainers. Замість того, щоб страждати з розгортанням контейнерів вручну, просто встановлюєте його як
npm-пакет і одразу починаєте використовувати. Наприклад вам потрібно протестувати код, який використовує ElasticSearch:
npm install @testcontainers/elasticsearch --save-dev
const container = await new ElasticsearchContainer("elasticsearch:7.17.7").start();
📎 - https://testcontainers.com/