Я учусь использовать Karate для разработки автоматизированного тестирования API на основе Java, который содержит уровень DAO для взаимодействия с базой данных для получения некоторой информации и ее возврата вызываемому абоненту. Это упрощенный рабочий процесс:
GET платежная информация -> Вызовы PaymentInformationService -> Вызовы
PaymentInformationDAO -> Вызовы базы данных MYSQL -> Возвраты 200ОК
с (псевдо) кодом:
Код: Выделить всё
PaymentInformationServiceImple -> PaymentsInformationDAOImple.getPayments(int custId)
У меня есть некоторый опыт тестирования компонентов в NodeJS (где я использовал jest, где было довольно тривиально заглушить зависимости для платежной службы, вызывающей dao выше, с помощью простых ссылочных функций). Я пытаюсь сделать то же самое в Karate и в этих классах Java Impl, где мне нужно заглушить PaymentInformationDAO в реальном времени, чтобы тест компонента не превратился в живой интеграционный тест (т. е. я не хочу тестировать фактические вызовы в базу данных, а лучше заглушить их в одиночку при вызове /GET к службе)
Я много гуглил, но нашел только такую информацию, как использование Wiremock для заглушить последующие вызовы API. В моем случае мне нужно отключить сам DAO, который не является вызовом API. Как бы я к этому подошел?
Подробнее здесь:
https://stackoverflow.com/questions/784 ... ains-a-dao