如何让 WebTestClient 注销所有请求 [重复]
Posted
技术标签:
【中文标题】如何让 WebTestClient 注销所有请求 [重复]【英文标题】:How do I get WebTestClient to log out all requests [duplicate] 【发布时间】:2018-08-24 11:48:09 【问题描述】:我的 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
。可能我可以创建某种应用程序配置或配置类来执行此操作,但不幸的是我还没有找到方法。
【问题讨论】:
@thomas77 问题是他们手动实例化WebTestClient
而我想将@Autowired
保留在
【参考方案1】:
使用ExchangeFilterFunction。请参阅此帖子how to log webclient call。
使用注册的过滤器创建您自己的客户端,它应该可以工作。
【讨论】:
问题是他们手动实例化WebTestClient
,而我想将@Autowired
保留在
那么它应该在@Configuration
类中创建并配置为一个bean,所以它可以自动装配?您有创建 bean 的任何 Spring 配置吗?如果是这样,请将其与@Bean
注释一起放在那里。以上是关于如何让 WebTestClient 注销所有请求 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot WebTestClient - 如何在 graphql API 中使用 expectBody
如何在注销期间取消所有 NSMutableURLRequest?