问题 org.mockito.exceptions.misusing.UnfinishedStubbingException:
当我们一个mock方法中继续mock的时候就会跑出异常。比如如下例子
when(bbbModel.getAAAModel()).thenReturn(AAATest.mocAAAModel())关键是你在AAATest.mockAAAmodel()方法中继续mock 会的话 就会跑出异常,这与mock的实现机制有关系。(You're nesting mocking inside of mocking)
AAATest.mockAAAmodel(){
....
AAA aaa = mock(AAA.class);
when(aaa.getNames()).thenReturn(Lists.newArrayList("1","2","3","4"));
}
}
具体问题是mock搞不清楚你到底是在mock aaa.getNames()方法 还是 model.getAAAmodel()方法。
解决办法:
XXXmodel
AAAModel aaaModel = AAATest.mockAAAModel();
when(bbbmodel.getAAAModel()).thenReturn(aaaModel);
本文探讨了在使用Mockito进行单元测试时遇到的UnfinishedStubbingException异常,重点分析了如何避免在Mocking过程中出现的Nesting Mocking问题,通过示例代码演示了解决方案。
2724

被折叠的 条评论
为什么被折叠?



