我對如何爲我的應用程序正確編寫單元測試感到困惑。 其實我想知道如果我必須重寫一個存在的方法,並修改它的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