Java jUnit意外方法调用DAO Easymock检查用户
我在测试DAO中的检查用户方法时遇到问题。 代码如下:Java jUnit意外方法调用DAO Easymock检查用户,java,mocking,tdd,dao,easymock,Java,Mocking,Tdd,Dao,Easymock,我在测试DAO中的检查用户方法时遇到问题。 代码如下: private UserService service; private UserDao mockDAO; @Before public void setUp(){ service=new UserService(); mockDAO=createMock(UserDao.class); service.setUserDao(mockDAO); } @Test public void testCheckUserL
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):
我不知道为什么会出现这个错误?我已经为方法check user添加了
EasyMock.expect
,因为当我们在模拟中使用对象时,我们需要使用匹配器来执行对象比较
在您的情况下,您可以设置一个匹配器来匹配它,或者如果您对任何用户对象都满意,那么可以使用EasyMock.isA(User.class)
例如
expect(mockDAO.checkUser(EasyMock.isA(User.class)).andReturn(results.getIdUser())
或
expect(mockDAO.checkUser(test)).andReturn(results.getIdUser())reportMatcher(新MatcherClass());//参考: