UserDao dao = EasyMock.createStrictMock(UserDao.class);
UserService service = new UserServiceImpl(dao);
//开始测试
//指定测试时所要登录的是一个不存在的用户
String username = "Jaders";
String password = "hongyu";
//为了保证用户存在,这里就要andReturn(null),因为dao.load一个不存在用户时取到的是null
EasyMock.expect(dao.load(username)).andReturn(null);
EasyMock.replay(dao);
service.login(username, password);
EasyMock.verify(dao);
}
/**
* 测试用户登录失败(用户密码错误)
* @see 为了查看效果,可以将expected=RuntimeException.class删去
*/
public void testLoginFailPasswordError(){
//同样先做好准备工作
UserDao dao = EasyMock.createStrictMock(UserDao.class);
User user = new User(2, "Jadyer", "hongyu");
UserService service = new UserServiceImpl(dao);
//开始测试
//指定测试时所要登录的是一个密码错误的用户
String username = "Jadyer";
String password = "xuanyu";
//密码错误时用户是存在的,所以要andReturn(user)
EasyMock.expect(dao.load(username)).andReturn(user);
EasyMock.replay(dao);
service.login(username, password);
EasyMock.verify(dao);
}
}