тестирования продукта со swagger докой. Ни первую ни вторую либу не знаю, пришел из typescript. Какие "фатальные недостатки" для тестирования api у каждой?
Любую. Ктор проще. У спринга больше интеграций
Если тестируешь контракт API, я бы посоветовал Pact
Если там просто веб + база то проще ктор спринг - это большой мир с кучей своих подводных камней, но с поддержкой всего, что душа пожелает "изкоробки" Из фатальных недостатков ktor vs spring - рецептов/гайдов/доков/ответов на вопросы по спрингу полный интернет, ktor таким пока не богат
Если сваггер есть, то спринг умеет с ним дружить с помощью некоторых библиотек
Продукт с микросеросервисами и множеством внешних зависимостей поэтому нужно будет много мокать в этом случае наверно лучше spring? И как вариант openapi-generator https://github.com/OpenAPITools/openapi-generator предлагает сгенерить retrofit проект, но там описание роутов надо делать в интерфейсе, чуть смутил этот момент.
мне наверно больше надо проект начальный сгенерить, чтобы долго не разбираться как работает либа и чтобы было проще в процессе допиливания. До этого краем глаза видел rest-assured надо было авторизоватся и типизировать некоторые респонсы.
Спринг конечно же берите для таких целей, гайд наверняка по первому гуглу найдется под задачу
Опять же, для таких случаев Pact предоставляет хороший список ситуации для чего он подходит и не подходит: https://docs.pact.io/getting_started/what_is_pact_good_for Из первоначальной задачи - протестировать API - в моём понимании это contract testing (учитывая что есть Swagger спека). В противном случае - картинка с Эскобаром тут была в тему, нет большой разницы что брать - главное смочь адекватно настроить генератор с выбранной системой билда, будь то Gradle или Maven
ну если нужен прям тру Е2Е пакт тут не поможет)
Пока нашлись гайды только под тестированию приложения написанного на spring-boot. А все остальное похоже сложнее надо передавать в каждый метод url? и отдельно по джавовски типизацию респонса Fruits.class https://spring.io/guides/gs/testing-web/ @Test public void greetingShouldReturnDefaultMessage() throws Exception { assertThat(this.restTemplate.getForObject("http://localhost:" + port + "/", Fruits.class)).contains("Hello, World"); Смотрю на retrofit там как то проще все выглядит и генератор сгенерил контроллеры для автоизации. ktor похож на него.
ретрофит - это вроде же клиент, а не сервер. Вам что нужно-то?
Клиент, которым можно протестировать написанный сервер, очевидно.
Я просто не понял, чего там спринг рядом с ним делает. У спринга тоже своей клиент есть?
Канеш, как бы ещё с его помощью микросервисы делали.
Обсуждают сегодня