我正在努力增加我的项目的代码覆盖率,并且在使我的单元测试用例达到下面代码(#def)
中的else块方面面临挑战
Future<List<String>> myList = this.getSomeDetails(mobileNumber,user);
myList.onComplete( result ->
{
if(result.succeeded())
{
List<String> mobileList = result.result();
if(mobileList.isEmpty()){
//some code #abc
}
else{
//some code #def
}
}
});
这是我在UT中尝试过的,但不知何故,它仍然返回true并且else块没有执行。你知道我怎么通过我的UT覆盖其他街区吗?
List mockedList =Mockito.mock(List.class);
Mockito.when(mockedList.isEmpty()).thenReturn(false);
1条答案
按热度按时间cnjp1d6j1#
我假设你的“result”是在onComplete()中创建的。
如果是这种情况,您就不能模拟它,除非结果的“生产代码”被外部化。(即注入工厂)
但这个条件看起来很容易实现。看起来,你只需要在列表中至少有一个值来运行测试(以到达else分支)。