I'm a bit confused on how to properly write unit tests for my application. Actually i want to know if i have to rewrite an existed method and modify it for junit or just call my existed method and use assert. So far, i use the second option, but i've came across with a problem. For example, inside a Controller method i'm getting the currently logged in user and pass it to some services. If i call this method through JUnit it will show null exception because there is no logged in user. So, 1) do i have to rewrite these kind of methods for testing purposes? 2) Is it proper to call existed methods and use assertion anyway? Thanks
@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";
}