我们使用的是Spring框架5和Spring Boot 2.0.0.M6,还WebClient用于反应式编程。我们为反应性休息端点创建了测试方法,因此我查找了有关如何执行此操作的示例。我发现这一个或这和许多其他地方哪都一样。他们只是自动布线WebTestClient。所以我尝试了相同的方法:
WebClient
WebTestClient
@Log @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class MyControllerTest { @Autowired private WebTestClient webClient; @Test public void getItems() throws Exception { log.info("Test: '/items/get'"); Parameters params = new Parameters("#s23lkjslökjh12", "2015-09-20/2015-09-27"); this.webClient.post().uri("/items/get") .accept(MediaType.APPLICATION_STREAM_JSON) .contentType(MediaType.APPLICATION_STREAM_JSON) .body(BodyInserters.fromPublisher(Mono.just(params), Parameters.class)) .exchange() .expectStatus().isOk() .expectHeader().contentType(MediaType.APPLICATION_STREAM_JSON) .expectBody(Basket.class); } }
我无法运行此命令,因为出现错误:
Could not autowire. No beans of 'WebTestClient' type found.
因此,似乎不存在自动配置。我使用的是错误版本还是什么问题?
注释您MyControllerTest与测试类@AutoConfigureWebTestClient的注释。那应该解决问题。
MyControllerTest
@AutoConfigureWebTestClient