我正在使用mockito Spy测试一个类
@Spy UserRepository userRepositoryMock;
如果我用when表达式将其存根化,它就可以工作
when(userRepositoryMock.findById(anyString())).thenReturn(Optional.of(user1));
但是我想知道为什么另一个语法doReturn不起作用:
doReturn(Optional.of(user1)).when(userRepositoryMock.findById(anyString()));
使用doReturn会显示以下错误消息
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at io.onq.web.controller.api.user.UserUnitTest.testUserlistOktaStateChange(UserUnitTest.java:110)
E.g. thenReturn() may be missing.
为什么会失败呢?
1条答案
按热度按时间nbysray51#
根据@卡洛斯的评论,当您使用doReturn()时,代码应该如下所示
所以当我们检查你的代码时,我们看到你在spy/mock Object后面漏掉了“)”。所以你的存根应该是这样的: