我正在编写单元测试以检查私有方法是否会关闭流。
单元测试调用methodB,变量some为null
单元测试不会在测试中模拟类
私有方法属于我正在调用的公共方法。
在eclipse中使用emma(通过eclemma插件),方法调用显示为未被覆盖,即使方法中的代码是
e.g
public methodA(){
if (something==null) {
methodB(); //Not displayed as covered
}
}
private methodB(){
lineCoveredByTest; //displayed as covered
}
为什么方法调用不会被突出显示为被覆盖?
答案 0 :(得分:2)
我发现EMMA的eclipse插件非常错误,并且与你描述的那个有过类似的经历。最好只使用EMMA(如果需要,通过ANT)。确保您始终重新生成EMMA生成的元数据文件,以避免合并混淆(我怀疑这是eclipse插件的问题)。
答案 1 :(得分:0)
我假设当您说'单元测试呼叫methodB()
'时,您的意思并非直接并且通过methodA()
。
那么,是否可能通过其他单元测试或methodB()
来调用methodC()
?