我在使用 EasyMock (3.1) 类模拟时遇到了一些困难。这应该适用于模拟部分类实现,我认为这应该是理想的单元测试抽象基类,同时模拟缺失的方法。这是模式 - 一个立即可识别的经典......
public interface Interface {
public void intfMethod();
}
public abstract class AbstractBase implements Interface {
public void otherMethod() {
// do some stuff we need to test...
intfMethod();
}
}
现在测试:
public class TestAbstractBase {
AbstractBase testInstance;
@Before
public void setUp() {
testInstance =
createMockBuilder(AbstractBase.class).addMockedMethod("intfMethod").createMock();
}
@Test
public void testOtherMethod() {
testInstance.intfMethod(); // expect this to be invoked on the mock...
replay(testInstance);
testInstance.otherMethod();
verify(testInstance);
}
}
EasyMock 似乎不喜欢这个。它抛出:
java.lang.IllegalArgumentException: Method not found (or private): intfMethod
at org.easymock.internal.MockBuilder.addMockedMethod(MockBuilder.java:78)
at TestAbstractBase.setUp(TestAbstractBase.java:19)
有任何想法吗?我发现了一个相关的问题,但它并没有真正做到它的标题......