易上空洞法
2022-09-01 11:44:59
我正在尝试使用EasyMock来模拟一些数据库接口,以便我可以测试包装方法的业务逻辑。我一直在使用在测试设置中使用以下方法返回的方法。
DBMapper dbmapper = EasyMock.createMock(DBMapper.class);
userService.setDBMapper(dbmapper);
然后在我的实际测试中,我运行
EasyMock.expect(dbmapper.getUser(userId1)).andReturn(mockUser1);
EasyMock.replay(dbmapper);
userService.getUser(userId1);
然后,此服务连接到 dbmapper 并返回对象(映射器使用 setter 方法注入)
这些类型的模拟似乎工作正常。但是,当我尝试运行测试时
userService.addUser(newUser1);
此方法调用 void 方法。
dbmapper.createUser(newUser);
正是这种方法,我在嘲笑时遇到了问题。我试过以下方法
EasyMock.expectLastCall();
EasyMock.replay(dbMapper);
userService.addUser(newUser1);
因为其他一些帖子/问题等似乎表明我得到一个IlligalStateException: no last call on a mock available
任何人都可以给我指出正确的方向吗?
提前致谢