2017-03-01 62 views
-1

我正在使用easymock来测试我的课程。在编写代码后,我发现即使给出错误的输入,每个测试都能成功。在堆栈溢出的论坛上,我看到可以通过使用replay方法来避免,但当我使用replay时,它甚至成功。我不知道我做错了什么?你能否看看代码并告诉我如果我必须做更多的事情来使测试失败?我认为测试是不工作..简易模拟的期望方法给出了即使是虚假测试也通过的测试结果

service = EasyMock.createMock(MyService.class); 
menu = EasyMock.createMock(ISPFMenu.class); 
menu.setName("name"); 
menu.setTitle("title"); 

EasyMock.expect(service.createLinesToParseEasyMock(menu)).andReturn(null); 
EasyMock.replay(service); 
+0

所以此调用应该返回null? – Christian

+0

我的误解。最后添加验证可能是你想要的。 – James

回答

2

你试过

EasyMock.verify(service); 
EasyMock.verify(menu); 

或可替代

EasyMock.verifyAll(); 
+0

这是工作!谢谢詹姆斯。在验证之前我还必须使用重播吗?当我从论坛上阅读时,我必须使用重播来激活测试,但似乎并非如此。 – user2307786

+0

这对您的问题中的代码没有任何影响。您仍然希望重播,以便在实际测试行为时使用。 – James