在这种情况下,谁能解释一下我们使用PowerMockito.when和PowerMockito.doReturn

问题描述

我正在为我的服务类编写测试用例,但是我不确定何时使用powermockito.when()powermockito.doReturn(),因为两者的行为都与我相似。

解决方法

根据我的理解,doReturn()和when()几乎相等,但是我发现when()对您在编译时返回的值进行类型检查的区别在于 在doReturn()中,没有对您在编译时返回的值进行类型检查

例如:

案例1:

PowerMockito.when(mongoTamplate.getCollection(Mockito.eq("testdoc"))).thenReturn(mongoCollection);

案例2:

powerMockito.doReturn(mongoCollection).when(mongoTamplate).getCollection(Mockito.eq("test-doc"))

如果在编译时检查了1种类型的mongoCollection,而在编译时没有检查case2的类型2中,