我试图找出为什么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
关于如何解决这个问题的任何想法?最后,我希望测试使用MockSomeServiceImpl方法而不是SomeService实现中的方法。
SomeService是由WSDL生成的,因此我没有someObject.getService()返回的实现。所以我不能做Mockit.redefineMethods(SomeServiceImpl.class,MockSomeServiceImpl.class)