小编Fir*_*maX的帖子

EasyMock void方法

我正在尝试使用EasyMock来模拟一些数据库接口,以便我可以通过包装方法测试业务逻辑.我已经通过在我的测试设置中使用以下方法返回的方法.

DBMapper dbmapper = EasyMock.createMock(DBMapper.class);
userService.setDBMapper(dbmapper);        
Run Code Online (Sandbox Code Playgroud)

然后在我的实际测试中运行

EasyMock.expect(dbmapper.getUser(userId1)).andReturn(mockUser1);
EasyMock.replay(dbmapper);
userService.getUser(userId1);
Run Code Online (Sandbox Code Playgroud)

然后,此服务连接到dbmapper并返回对象(使用setter方法注入映射器)

这些类型的模拟似乎工作正常.但是,当我尝试运行测试时

userService.addUser(newUser1);
Run Code Online (Sandbox Code Playgroud)

此方法调用void方法.

dbmapper.createUser(newUser);
Run Code Online (Sandbox Code Playgroud)

我正在嘲笑这个方法.我尝试了以下内容

EasyMock.expectLastCall();
EasyMock.replay(dbMapper);
userService.addUser(newUser1);
Run Code Online (Sandbox Code Playgroud)

正如其他一些帖子/问题等似乎暗示我得到了一个 IlligalStateException: no last call on a mock available

有人能指出我正确的方向吗?

提前谢谢了

java testing junit unit-testing easymock

30
推荐指数
2
解决办法
6万
查看次数

标签 统计

easymock ×1

java ×1

junit ×1

testing ×1

unit-testing ×1