小编典典

EasyMock和测试受保护的方法

java

试图使用EasyMock来测试是否调用了一个受保护的方法,不知道这是否是最好的方法……但是鉴于以下内容,我如何才能知道在调用callMe()时didIgetCalled()实际上是被调用了?

public Class testMe(){
    public int callMe(){
        if(true){
            didIgetCalled();
        }
        return 1;
    }
    protected int didIgetCalled(){
        return 2;
    }
}

阅读 242

收藏
2020-11-26

共1个答案

小编典典

这是一种无需使用EasyMock即可测试该方法的方法,但是我的建议是:如果它不是公开的,请不要为此编写测试

Method method = testMe.class.getDeclaredMethod("didIgetCalled", new Class[]{});
method.setAccessible(true);
testMe testClass = new testMe();
int invoke = (Integer) method.invoke(testClass);
assertEquals(2,invoke);

我知道这不会完全解决您的问题,但这只是一个开始 :)

2020-11-26