我在测试DAO检查用户方法时遇到问题。 这是代码:
private UserService service;
private UserDao mockDAO;
@Before
public void setUp(){
service=new UserService();
mockDAO=createMock(UserDao.class);
service.setUserDao(mockDAO);
}
@Test
public void testCheckUserLogin(){
User results=new User();
User test=new User();
test.setUsername("x");
test.setPass("y");
EasyMock.expect(mockDAO.checkUser(test)).andReturn(results.getIdUser());
EasyMock.replay(mockDAO);
assertEquals(service.login(test),service.login(results));
EasyMock.verify(mockDAO);
}
当我运行它时,我收到此错误:
java.lang.AssertionError:
Unexpected method call UserDao.checkUser(com.sot.car.model.User@4e527622):
我不知道为什么会收到此错误?我已为方法检查用户
添加了EasyMock.expect
答案 0 :(得分:0)
因为,当我们在Mocking中使用对象时,我们需要使用匹配器来执行对象比较。
在您的情况下,您可以设置Matcher以匹配它,或者如果您对任何用户对象感到满意,则使用EasyMock.isA(User.class) 例如 EasyMock.expect(mockDAO.checkUser(EasyMock.isA(User.class)))andReturn(results.getIdUser())。
OR
。 EasyMock.expect(mockDAO.checkUser(试验))andReturn(results.getIdUser());
EasyMock.reportMatcher(new MatcherClass()); //参考:http://www.easymock.org/EasyMock2_2_Documentation.html