Интеграционное тестирование с обратными вызовами - PullRequest
1 голос
/ 27 октября 2011

Каков наилучший способ автоматизации интеграционного тестирования, когда используются асинхронные обратные вызовы?

Скажем, например, у меня есть модуль A, и когда я что-то вызываю в этом модуле, он сразу же возвращает ответ, который я могу проверить как часть моих тестов. Но в дополнение к этому немедленному ответу обратный вызов должен произойти в течение определенного промежутка времени (скажем, 5 минут), который предоставляет дополнительную информацию, которую необходимо оценить для теста.

По сути, я хотел бы выполнить тест сразу же по ответу, а затем сказать некоторому тестированию, чтобы он ожидал обратного вызова в течение определенного периода времени, а также подтвердил это. Если в течение таймфрейма обратного вызова не происходит или если обратный вызов имеет неожиданный ответ, тест не пройден.

Существует ли инструмент непрерывной интеграции или какой-либо другой инструмент, который я могу использовать для проведения подобных тестов?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Мне кажется, у меня есть решение с использованием jenkins:

  • Выполните целую кучу тестов, которые делают вызовы, которые в конечном итоге приводят к некоторым асинхронным обратным вызовам.
  • После завершения тестов запустите сборку для отдельного задания 'обратных вызовов', которое задерживается на N секунд (максимальное время, которое, по вашему мнению, займет обработка).
  • Обратные вызовы происходят где-то на каком-либо сервере, и они регистрируются для проверки отложенным заданием «обратные вызовы».
  • Задание обратных вызовов запускается и проверяет зарегистрированные обратные вызовы. Если в журнале отсутствует ссылка на обратный вызов, которого ожидает задание, можно написать тест, который в этом случае не будет выполнен.

Скорее всего, это будет связано с созданием параметризованного задания для обратных вызовов, поскольку ему необходимо знать, какой журнал обратных вызовов проверять при запуске (т. Е. Проверять журнал обратных вызовов для нормальной сборки 90)

В какой-то мере устал в данный момент, так что это может не иметь смысла - но я был бы рад уточнить, если это будет необходимо.

0 голосов
/ 27 октября 2011

Если возможно, я бы изменил обратный вызов, чтобы иметь возможность установить время обратного вызова. В своем тесте вы можете сделать это за 1 секунду, передать обратный вызов mock и автоматически убедиться, что обратный вызов вызван в правильное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...