栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Mockito UnfinishedStubbingException

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mockito UnfinishedStubbingException

从我在Mockito的“问题53”(https://pre.google.com/p/mockito/issues/detail?id=53)上阅读的内容来看,由于Mockito中涉及的验证框架,我的代码遇到了问题。正是以下代码本身导致了异常。

private ConstantNode getConstantNode(NumericalValue value){    ConstantNode node = Mockito.mock(ConstantNode.class);    Mockito.when(node.evaluate()).thenReturn(value);    Mockito.when(node.toString()).thenReturn(value.toString());    return node;}

如果您还记得我的代码,则参数值也为MOCK,因此当在

value.toString()
上调用时
thenReturn()
,我相信(如果我错了,请纠正我)验证框架会触发并确保每次“何时”已经
thenReturn()
调用/验证/等。因此,如果发生这种情况,
Mockito.when(node.toString()).thenReturn(value.toString()
将不会对其进行验证, 因为
不会从中 返回
valute.toString()
,从而开始了整个“验证所有内容”链。

我如何解决它:

private ConstantNode getConstantNode(NumericalValue value){    ConstantNode node = Mockito.mock(ConstantNode.class);    Mockito.when(node.evaluate()).thenReturn(value);    String numberToString = value.toString();    Mockito.when(node.toString()).thenReturn(numberToString);    return node;}

这样, 可以 对其进行验证。我发现这是完整的代码味道,因为我将不得不留下一条注释来解释为什么我在代码中使用了看似无用的中间变量。

谢谢您的帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号