EasyMock:isA()在正确的课堂上失败了

时间:2011-08-27 15:15:16

标签: java easymock

我告诉模拟对象等待命令的方法: mockObject.registerSQLDriver(ISA(SomeName.class));

在运行时方法完全使用SomeName类的实例调用,但测试失败告诉“意外的方法调用registerSQLDriver()”

什么可能导致这个问题?

以下是代码:

resetToDefault(_SQLDriverManager);
_SQLDriverManager.registerSQLDriver(isA(SQLDriver.class));
expectLastCall().anyTimes();
replay(_SQLDriverManager);

1 个答案:

答案 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”)