Постоянство данных в каждой итерации PactVerify в провайдере

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

Например, регистрация клиента. Должен ли я рассмотреть откат данных в конвейере?

2 ответа

Я принимаю решение, основанное на компромиссах насмешек / недосмотров для каждой конкретной кодовой базы. Я работал на микросервисах, где было очень просто откатить транзакцию, поэтому я использовал реальную базу данных для этих тестов. Я также работал над системами, в которых было больше смысла издеваться над хранилищем, как это было предложено Фабрицио. Я всегда издеваюсь над зависимостями сервисов.

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

Например, если ваш ClientResource (или же ClientControllerв зависимости от вашего имени шаблона) вызывает ClientRepository, ClientRepository будет издеваться

Другие вопросы по тегам