У меня есть бэкэнд-система, в которой мы используем сторонний Java API для доступа из наших собственных приложений. Я могу получить доступ к системе как к обычным пользователям вместе с другими пользователями, но у меня нет божественных полномочий.
Следовательно, чтобы упростить тестирование, я хотел бы запустить реальный сеанс и записать вызовы API и сохранить их (желательно, как редактируемый код), чтобы мы могли выполнить сухие тестовые прогоны позже с вызовами API, просто возвращающими соответствующий ответ из записи сеанс - и это важная часть - без необходимости разговаривать с вышеупомянутой бэкэнд-системой.
Итак, если мое приложение содержит строку в форме:
Object b = callBackend(a);
Я хотел бы, чтобы фреймворк сначала зафиксировал, что callBackend()
возвратил b, дал аргумент a, а затем, когда я делаю сухой прогон в любое более позднее время, скажите "эй, учитывая, что этот вызов должен вернуть b". Значения a и b будут одинаковыми (если нет, мы перезапустим шаг записи).
Я могу переопределить класс, предоставляющий API, так что все вызовы метода для захвата будут проходить через мой код (то есть байт-код для изменения поведения классов вне моего контроля не требуется).
В какой структуре я должен искать это?
EDIT: Обратите внимание, что охотники за головами должны предоставить фактический код, демонстрирующий поведение, которое я ищу.