我在一个私有方法中有一个switch-case语句。我认为我们不需要对私有方法进行单元测试。但我的代码覆盖工具(EclEmma)显示"4个分支中有1个未命中",switch语句上有黄色菱形。所以我的问题是:我该如何针对这种特殊情况编写测试?
代码段
public void parentMethod() {
....
childMethod(someList);
....
}
private void childMethod(List<Integer> someList) {
for(Integer var : someList) {
switch(var){ ..... }
}
}
因此,您可以尝试使用反射,类似于以下内容:
MyClass myClass = new MyClass();
List<Integer> input = Arrays.asList(1, 2, 3);
Method method = MyClass.class.getDeclaredMethod("childMethod", List.class);
method.setAccessible(true);
method.invoke(myClass, input);
....
关于测试私有方法或不进行一般测试的方法的良好链接:
http://saturnboy.com/2010/11/testing-private-methods-in-java/
http://www.artima.com/suiterunner/privateP.html