次のコードでMockitが機能しない理由を理解しようとしています。
public class TestClass {
@Test
public void test() {
Mockit.redefineMethods(ExecuterClass.class, new Object() {
@SuppressWarnings("unused")
public SomeService getService() {
return new MockSomeServiceImpl();
}
});
// Code to run test
}
}
public abstract class ExecuterClass<T,U,V,W> {
// Other methods/variables
public SomeService getService() {
return someProvider.getService();
}
}
public interface SomeService {
// Some method definitions
}
public class MockSomeServiceImpl implements SomeService {
// Some method implementations
}
私が返すエラーは次のとおりです。
java.lang.IllegalAccessError: tried to access class TestClass from class ExecuterClass
これを修正する方法について何かアイデアはありますか?最後に、SomeService実装のメソッドではなく、MockSomeServiceImplメソッドをテストで使用するようにします。
SomeServiceはWSDLによって生成されたため、someObject.getService()が返す実装はありません。したがって、Mockit.redefineMethods(SomeServiceImpl.class、MockSomeServiceImpl.class)を実行できません。