尝试使用EasyMock测试受保护的方法是否被调用,不确定这是否是最好的方法...但是如下所示,我如何判断callI()实际调用了didIgetCalled()被称为?
public Class testMe(){
public int callMe(){
if(true){
didIgetCalled();
}
return 1;
}
protected int didIgetCalled(){
return 2;
}
}
答案 0 :(得分: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);
我知道这不会完全解决您的问题,但这是一个开始:)
答案 1 :(得分:0)
这个怎么样:
您可以为测试类保留与测试类相同的包名称。这样,如果您所测试的课程MyClass.java
位于src
目录中且包名为com.abc.mypackage
,那么您的测试类说MyClassTest.java
可能位于test
目录中相同的包名称。见下图: