java 如何确定return_java – 与doReturn方法一起深度存根

我正在尝试使用doReturn方法的Mockito深度存根功能.

当我在深层存根示例中使用when方法时,它可以正常工作:

Foo mock = mock(Foo.class, RETURNS_DEEP_STUBS);

when(mock.getBar().getName()).thenReturn("deep");

但是当我尝试与doReturn相同的东西时,我得到一个WrongTypeOfReturnValue:

doReturn("deep").when(mock).getBar().getName();

我也尝试过这些方法,但后来我得到了一个UnfinishedStubbingException:

doReturn("deep").when(mock.getBar()).getName();

doReturn("deep").when(mock.getBar().getName());

如何在doReturn方法中使用深度存根功能?

(我知道包括Mockito开发人员在内的一些人不鼓励使用深层存根.我不确定我是否同意他们对此的立场.让我们继续讨论这个问题.)

解决方法:

当你在方法中调用你的深存根时,Mockito似乎感到困惑.我能够通过分别调用mock.getBar()来解决它:

Foo mock = mock(Foo.class, RETURNS_DEEP_STUBS);

Bar bar = mock.getBar();

doReturn("deep").when(bar).getName();

标签:java,mockito

来源: https://codeday.me/bug/20190519/1137306.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值