我告诉模拟对象等待命令的方法: mockObject.registerSQLDriver(ISA(SomeName.class));
在运行时方法完全使用SomeName类的实例调用,但测试失败告诉“意外的方法调用registerSQLDriver()”
什么可能导致这个问题?
以下是代码:
resetToDefault(_SQLDriverManager);
_SQLDriverManager.registerSQLDriver(isA(SQLDriver.class));
expectLastCall().anyTimes();
replay(_SQLDriverManager);
答案 0 :(得分:0)
可能您正在模拟一个实例并测试另一个实例。
要检查这一点,您应该在模拟创建中添加name
参数:
Comparable<String> mock01 = EasyMock.createMock("M1", Comparable.class);
Comparable<String> mock02 = EasyMock.createMock("M2", Comparable.class);
EasyMock.expect(mock01.compareTo(EasyMock.isA(String.class))).andReturn(1);
EasyMock.replay(mock01, mock02);
mock02.compareTo("Test");
EasyMock.verify(mock01, mock02);
在这种情况下,测试将失败并显示以下消息:
意外的方法调用M2.compareTo(“Test”)
而不是:
意外的方法调用Comparable.compareTo(“Test”)