Я пишу WebFluxTest:
@WebFluxTest(controllers=Example.class)
class ExampleTest {
@Autowired
WebTestClient webTestClient;
@Test
public void example(){
webTestClient.get().uri("http://localhost:8080/example/employees/id=1")
.exchange()
.expectBody().consumeWith(response -> assertTrue(new String(response.getResponseBody(), StandardCharsets.UTF_8).contains(expected)));
}
}
Код для тестирования:
@Controller
public class Example {
@GetMapping("/example/employees/{id}")
@ResponseBody
public String example(@MatrixVariable("id") int id) {
....
}
Это приложение Spring Boot с этой конфигурацией:
@Configuration
public class MyConfig implements WebMvcConfigurer {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
UrlPathHelper urlPathHelper = new UrlPathHelper();
urlPathHelper.setRemoveSemicolonContent(false);
configurer.setUrlPathHelper(urlPathHelper);
}
...
Вывод: «status»: 400, «error»: «Bad Request», «message»: «отсутствует переменная матрицы« id »для параметра метода типа int»}