我试图弄清楚为什么 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)