我对如何为我的应用程序正确编写单元测试感到困惑。 其实我想知道如果我必须重写一个存在的方法,并修改它的junit或只是调用我的存在的方法,并使用断言。 到目前为止,我使用第二个选项,但我遇到了一个问题。 例如,在Controller方法中,我获取当前登录的用户并将其传递给某些服务。如果我通过JUnit调用这个方法,它将显示空的异常,因为没有登录用户。 那么, 1)我是否必须重写这些类型的方法用于测试目的? 2)无论如何调用已有的方法并使用断言是否合适? 感谢如何正确编写JUnit测试?
@RequestMapping(value="/like", method=RequestMethod.GET)
public String msgLike(@RequestParam("msgId") long messageId, @RequestParam("like") boolean like){
User user = new User();
user = this.userService.getUserByName(this.userService.getLoggedInUsername()); //NULL EXCEPTION HERE WHEN TESTING
if(!messageService.checkIfLiked(user, messageId)){
if(like){
messageService.insertLike(messageId);
messageService.insertMessageUserLike(user, messageId);
}
if(!like){
messageService.insertDislike(messageId);
messageService.insertMessageUserLike(user, messageId);
}
}
return "redirect:/home";
}
您可能想提供有关您问题的更多详细信息。你能展示一个你想要测试的代码示例,并明确指出问题出在哪里? –
@Fido我发布了一个我试图测试的方法。 – wr21