如何解决MockRestServiceServer 看到来自先前测试的请求
我正在使用 MockRestServiceServer
运行 junit5,并且看到当我使用异步请求运行多个测试时,测试 A 中的 MockRestServiceServer
将看到来自测试 B 的请求并标记为意外。
@SpringBoottest(webEnvironment = WebEnvironment.MOCK)
public class MyTestClass {
@Autowired
private RestTemplate restTemplate;
@Autowired
private WebApplicationContext wac;
private MockRestServiceServer mockServer;
private mockmvc mockmvc;
private URI asyncUri = URI.create("/asyncUrl");
@BeforeEach
public void setUp(){
mockerServer = MockRestServiceServer.bindTo(restTemplate).ignoreExpectOrder(true).build();
mockmvc = mockmvcBuilders.webAppContextSetup(this.wac).build();
}
@AfterEach
public void tearDown(){
mockServer.verify();
mockServer.reset();
}
@Test
public void dontRunAsyncmethod(){
mockServer.reset(); // Added trying to fix the issue
mockServer.expect(ExpectedCount.never(),requestTo(asyncUri));
URI uri = URI.create("/myApi?runAsyncmethod=false");
mockmvc.perform(get(uri));
}
@Test
public void doRunAsyncmethod(){
mockServer.reset(); // Added trying to fix the issue
// Side issue here - I have to use `between` rather than `times`
// because mockServer validates before request happens
mockServer.expect(ExpectedCount.between(0,1),requestTo(asyncUri));
URI uri = URI.create("/myApi?runAsyncmethod=true");
mockmvc.perform(get(uri));
}
}
单独运行时,两个测试都通过。但是,当我将它们一起运行时,dontRunAsyncmethod
将失败,表示预计没有请求 /asyncUrl
。有没有办法将测试分开?我能否以某种方式确保在开始下一个测试之前所有请求都已完成?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。