存根的两种语法大致相同。但是,你始终可以将其
doReturn/when用于存根。但是在某些情况下你不能使用
when/thenReturn。废除无效方法就是这样的一种。其他方法包括与
Mockito间谍一起使用,并多次重复使用相同的方法。
可以
when/thenReturn提供(
doReturn/when但不能提供)的一件事是在编译时对返回的值进行类型检查。但是,我认为这几乎没有任何价值-如果你输入的类型有误,则可以在运行测试后立即发现。
我强烈建议仅使用
doReturn/when。学习两种语法何时会奏效没有意义。
你可能希望参考我在
Forming Mockito“语法”中的答案-有关一个非常紧密相关的问题的更详细的答案。



