试图使用EasyMock来测试是否调用了一个受保护的方法,不知道这是否是最好的方法……但是鉴于以下内容,我如何才能知道在调用callMe()时didIgetCalled()实际上是被调用了?
public Class testMe(){ public int callMe(){ if(true){ didIgetCalled(); } return 1; } protected int didIgetCalled(){ return 2; } }
这是一种无需使用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);
我知道这不会完全解决您的问题,但这只是一个开始 :)