在下面的代码中,我介绍了if语句的两个分支之一。但我也想测试另一个分支,即this.tom != null
。
public void setTom(boolean cmsConsent, boolean ebConsent) {
if(this.tom== null){
this.tom= new Tom(cmsConsent,ebConsent);
}
}
如何编写断言语句以覆盖所有分支?
答案 0 :(得分:0)
看来你的领域“汤姆”是一个简单的私人领域? 如果它没有被注入,你就不能将它模拟为是否为空。
我猜你也有汤姆对象的Getter? 如果您要更改代码:
if(this.tom== null){
到
if(this.getTom() == null){
你可以使用Mockito的SPY功能嘲笑Getter。 (如果你愿意,我可以进一步解释)
PS:PowerMock(ito)始终可以通过字节操作来增强您的代码,但它只能在必要时使用。
答案 1 :(得分:0)
您是否直接从测试中致电setTom
?如果是这样,您不断言所有分支都被覆盖,您只需通过您对代码的了解来测试所有分支。致电setTom
两次,一次使用tom==null
,一次使用tom != null
。分支机构。