gpt4 book ai didi

java - 如何使用mockito为此 Controller 类编写单元测试用例

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:29 25 4
gpt4 key购买 nike

这是我的 Controller 类。现在我想使用mockito为下面的 Controller 类编写单元测试用例

谁能帮我解决这个问题?

@Controller
public class LoginController {

@Autowired
@Qualifier("skillService")
private SkillService skillService;

@Autowired
private SkillReferenceData skillReferenceData;

@Autowired
private EmployeeValidator employeeValidator;

@RequestMapping(value = "/loginview.html", method = RequestMethod.GET)
@PreAuthorize("hasAuthority('ROLE_ANONYMOUS')")
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse respresultonse) throws Exception {
ModelAndView model = new ModelAndView("login");
return model;
}

@RequestMapping("/login.htm")
protected ModelAndView onSubmit(@ModelAttribute("userVB") UserVB userVB,
BindingResult result, HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("login");
}

}

最佳答案

通过以下方式创建 Controller 类的实例:

@InjectMocks
LoginController loginController;

通过使用此注释,您还可以访问和模拟您的私有(private)变量,例如SkillService、skillReferenceData、employeeValidator 使用:

@Mock(name = "skillService")
SkillService mockSkillService = createMock(SkillService.class);

不要忘记在单元测试之前添加 MockitoAnnotations.initMocks(this); 来初始化 Mockito 注释。

最后,您可以使用以下方式模拟构造函数:

Mockito.when(new ModelAndView(any(String.class).thenReturn(null)));

关于java - 如何使用mockito为此 Controller 类编写单元测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39655757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com