В настоящее время я работаю над серией веб-сервисов, которые нам нужно интегрировать с Kinesis - реализация выполнена, однако у нас есть серия интеграционных тестов (наши веб-службы используют все Spring Boot, поэтому мы используем аннотацию @WebIntegrationTest на наших тестовых классах, чтобы запустить локальный экземпляр сервера, а затем вызвать наши ресурсы с помощью TestRestTemplate), которые в настоящее время пытаются и не могут подключиться к реальному Kinesis.Amazon Kinesis + Интеграционные тесты
Несмотря на то, что в обычных модульных тестах не является проблемой для извлечения вызовов методам в библиотеке Kinesis, мы не можем этого сделать в тестах интеграции, поскольку весь стек приложения подключен к Spring. Для некоторых других вещей (таких как OAuth2 и звонков в наши другие веб-сервисы) мы смогли использовать WireMock для издевательства над фактическими конечными точками - мне бы очень хотелось использовать WireMock таким образом, чтобы издеваться вызов AmazonKinesisClient, но я не могу найти никаких советов о том, как это сделать.
В качестве альтернативы я видел, что некоторые компоненты AWS имеют библиотеки тестов, написанные третьими сторонами, которые позволяют вам запускать локальную версию (например, DynamoDbLocal), но не могут найти такое решение для Kinesis.
Может ли кто-нибудь дать мне несколько советов о том, как проводить интеграционные тесты с Kinesis?
Я не знаком с WebIntegrationTests, но вы могли бы: создать непроизвольный тестовый поток с одним осколком перед вашими испытаниями, запустить тест и закрыть его после? Или создать тонкую обертку вокруг aws api на ваши вызовы put/get, которые могли бы перетаскивать объекты через очередь? –
Я также столкнулся с этой «проблемой». Еще один вариант использования, который мне нужен, заключается в том, что каждый разработчик должен иметь возможность запускать тесты интеграции из локальной среды. Я не хочу создавать потоки для каждого разработчика. – Mantas
2017 и по-прежнему не видят никаких инструментов вокруг. – prayagupd