[英]Mocking a method of controller class when testing the web layer
我有一个控制器类ABCController.java
。 我正在为该类编写Web层测试用例。
@WebMvcTest(controllers = ABCController.class)
@RunWith(SpringRunner.class)
public class ABCControllerIntegrationTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testSuccessfulCall(){
mockMvc.perform(get("/pgdDataUrlGet"))
.andExpect(status().isOk());
}
}
我的ABCController.class generateSuccessCallEmail()
有一个函数。 我不希望在运行测试用例时调用此函数?
我想做这样的事情:
doNothing.when(controllerObject).generateSuccessCallEmail(anyString);
任何人都可以通过正确的方法来帮助我吗? 问题是使用注解@WebMvcTest
加载了Controller。 那么我该如何在控制器类中模拟一个函数呢?
我建议采用以下方法:
EmailService
) EmailService
注入您的控制器 emailService.generateSuccessCallEmail()
方法。 在测试方面,添加
@MockBean
EmailService emailService;
并对此对象进行模拟方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.