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)
何か案は?私は関連する質問を見つけましたが、それは実際にはそのタイトルを正当化するものではありません...