TL; DR: я прокомментировал эту проблему и получил запрос открыть новый тикет, но потом понял, что это скорее вопрос, так как Spring RestDocs предоставляет способ достичь того, что я хочу (игнорируя неважно заголовки в контрактах) с операционным препроцессором . Итак, мы здесь, на нашей дружной SoF
Проблема в том, что я пытаюсь создать контракты, начиная с RestDocs
теста (используя RestAssured
и junit5
, если это имеет значение). Тестовая настройка (в Котлине) выглядит так:
private val defaultDocument = document("{method_name}", SpringCloudContractRestDocs.dslContract())
lateinit var spec: RequestSpecification
@BeforeEach
internal fun setUp(restDocumentationContextProvider: RestDocumentationContextProvider) {
RestAssured.port = port
spec = RequestSpecBuilder()
.setConfig(
RestAssuredConfig.config()
.objectMapperConfig(
ObjectMapperConfig.objectMapperConfig()
.jackson2ObjectMapperFactory { _, _ -> mapper }
)
)
.addFilter(defaultDocument)
.addFilter(ResponseLoggingFilter())
.log(LogDetail.ALL)
.build()
}
, где mapper
и port
вводятся в виде Spring
бобов.
Сервер генерирует заголовок Date
, который является временем, когда генерируется ответ. Это делается автоматически Spring WebMvc
(я думаю), и мне наплевать на этот заголовок. Однако заголовок Date
приводит к сбою создания заглушки, так как я решил использовать Spring Cloud Contracts в мире полиглотов для создания и загрузки заглушки в репозиторий maven, потому что теперь сервер генерирует другую дату.
Как я отмечаю здесь , ContractDslSnippet , по-видимому, не обеспечивает способ игнорировать неважные заголовки и / или добавлять сопоставления (что по-прежнему остается открытым вопросом).
(краткий) список вопросов:
- Как отфильтровать неважные заголовки из сгенерированных контрактов?
- Могу ли я добавить собственные соответствия для заголовков, как я могу сделать для тела?