使用MockMvc测试Spring Controller时如何初始化Controllers字段

问题描述

我正在使用Spring Boot 2.2.4,并使用@AutoConfigureMockMvc初始化MockMvc对象。并测试我的控制器的端点:

    mockMvc.perform(get(URL)).andExpect(status().isOk());

但是我还必须在此控制器中模拟服务。尝试仅在测试类中自动连接该控制器:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public class MyControllerIntegrationTest {
 @Autowired
 MyController myController;

然后尝试为此对象设置模拟服务:

  FeignService feignService = mock(FeignService.class);
  //setting up some when() invocations
  //set feignService to myController with reflection

但是当我执行嘲笑vc GET请求并进入Controller时,还有另一个MyController实例,而不是我将feignService设置为的那个实例。

那么如何设置经过测试的Controller的字段?如何设置模拟服务?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...