这两行代码有什么区别吗?
选项 1:
doReturn(masterQuery).when(tldSpy).makeMyInsightAPIQuery(anyString());
选项 2:
stub(tldSpy.makeMyInsightAPIQuery(anyString())).toReturn(masterQuery);
其他人问了一个类似的问题(Mockito - doReturn() 和 when()之间的区别),但我问的是toReturn()
这个问题没有解决的问题。
stub(T).toReturn(...)
只是一个不推荐使用的语法,替换为when(T).thenReturn(...)
。与您链接的问题相同的规则和准则适用:
-
when().thenReturn()
和stub().toReturn()
可以执行返回类型检查 -
doAnswer().when()
是存根无效方法的唯一方法 -
doReturn().when()
避免在间谍和已经存根的对象中调用真正的方法
否则,它们具有完全相同的行为和相同的后果,并且可以互换使用。