1

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

4

0 回答 0