0
コントローラクラスとそのメソッドをテストします。コントローラをテストするときにNullpointerexception EasyMock
私のコントローラメソッドは次のようになります。
@RequestMapping(value = "/updateUserStory/{usid}", method = RequestMethod.GET)
public String updateUserStory(@PathVariable("trrid") Integer trrID, @PathVariable("usid") Integer userstoryID, Model model){
UserStory userStory = this.userStoryService.getUserStoryById(userstoryID);
model.addAttribute("userstory", userStory);
model.addAttribute("trrID", trrID);
return "updateUserStory";
}
私の試験方法は、次のようになります。
public void updateUserStory() throws Exception {
Model model = mockModel();
UserStory userStory = new UserStory();
userStory.setId(1);
EasyMock.expect(userStoryService.getUserStoryById(1)).andReturn(userStory);
EasyMock.replay(userStoryService);
String test = controller.updateUserStory(1, 1, model);
EasyMock.verify(userStoryService);
Assert.assertEquals("updateUserStory", test);
}
私はのためにuserStoryService
@Mock
private UserStoryServiceImpl userStoryService;
と@TestSubject
のために上@Mock
を追加しましたUserStoryController
(in the te単にコントローラと呼ばれる)。
@TestSubject
UserStoryController controller = new UserStoryController();
私はEasyMock.expect
ラインでNullPointerException
を得続けるテストを実行しています。これがどのように失敗しているのか分かりません。私は正しい方法を嘲笑している。
'userStoryService'はどのように初期化されますか? – Kraylog
@ NimrodArgovその部分を追加しました – Urban
コントローラクラスはどのように 'userStoryService'にアクセスできますか?あなたはそれを渡しますか? 'コントローラ'はどこに作成されますか? – Kraylog