我的SpringBootTest设置如下
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ControllerTest {
@Autowired
private WebTestClient webTestClient;
@Test
public void postTest() {
// Setup data
Form form = new Form();
form.setName("Test1");
form.setDescription("Description1");
// Run method
webTestClient.post()
.uri("/api/v1/data")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.syncBody(form)
.exchange()
.expectStatus()
.isOk()
.expectBody()
.jsonPath("data.id").isNotEmpty()
.jsonPath("data.name").isEqualTo(form.getName())
.jsonPath("data.description").isEqualTo(form.getDescription())
.jsonPath("data.status").isEqualTo("A");
}
}我想不出一种让WebTestClient注销所有HTTP请求和响应的方法。
我想将WebTestClient保留为@Autowired。我可能可以创建一些应用程序配置或配置类来实现这一点,但不幸的是,我还没有找到方法。
发布于 2018-03-15 23:39:32
使用ExchangeFilterFunction。请参阅此帖子how to log webclient call。
使用已注册的过滤器创建您自己的客户端,它应该可以工作。
https://stackoverflow.com/questions/49303310
复制相似问题