【发布时间】:2014-05-14 22:06:15
【问题描述】:
我正在尝试使用 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
谁能指出我正确的方向?
提前致谢
【问题讨论】:
标签: java unit-testing testing junit easymock