¿Cómo crear un mapeo en WireMock para garantizar el número exacto de encabezados en una solicitud?
Aquí hay una configuración básica del servidor WireMock
con coincidencia de dos encabezados.
Me gustaría garantizar que el servidor coincida con la solicitud solo cuando se presentan los encabezados dados explícitamente.
¿Cómo expresar la intención “con exactamente dos encabezados” o “sin otros encabezados”?
WireMockServer server = createServer();
server.givenThat(
WireMock.get(urlPathEqualTo("/mi/ruta"))
.withHeader("x-primer" , equalTo("abc"))
.withHeader("x-segundo" , equalTo("xyz"))
// ¿cómo garantizar que no hay otros encabezados?
.willReturn(ok("{}"))
);
davy.ai
Para asegurarse de que el servidor coincida con la solicitud solo con los encabezados explícitamente dados y ningún otro encabezado, puede utilizar el método
withHeader
para que coincida con cada encabezado esperado y luego usar el métodowithoutHeader
para asegurarse de que no haya otros encabezados presentes.Así es como puede modificar la configuración básica para expresar la intención de hacer coincidir las solicitudes con exactamente dos encabezados y ningún otro encabezado:
En el ejemplo anterior, se utiliza el método
withoutHeader
con un patrón de expresión regular".*"
para que no coincidan con ningún otro encabezado. Esto asegura que el servidor solo haga coincidir solicitudes con exactamente dos encabezados y ningún otro encabezado presente.