无法使用 Mockito 返回类对象

2022-09-01 01:12:52

我正在尝试编写一个单元测试,为此,我正在为Mockito模拟编写一个when语句,但我似乎无法让eclipse认识到我的返回值是有效的。

以下是我正在做的事情:

Class<?> userClass = User.class;
when(methodParameter.getParameterType()).thenReturn(userClass);

返回类型是 ,所以我不明白为什么日食说, .它提供了投射我的userClass,但这只会让一些乱码的东西黯然失色,说它需要再次投射(并且不能投射)。.getParameterType()Class<?>The method thenReturn(Class<capture#1-of ?>) in the type OngoingStubbing<Class<capture#1-of ?>> is not applicable for the arguments (Class<capture#2-of ?>)

这只是 Eclipse 的问题,还是我做错了什么?


答案 1

此外,解决此问题的一种更简洁的方法是使用do语法而不是何时。

doReturn(User.class).when(methodParameter).getParameterType();

答案 2
Class<?> userClass = User.class;
OngoingStubbing<Class<?>> ongoingStubbing = Mockito.when(methodParameter.getParameterType());
ongoingStubbing.thenReturn(userClass);

返回的 by 的类型与因为每个“?”通配符可以绑定到不同的类型而不同。OngoingStubbing<Class<?>>Mockito.whenongoingStubbing

要使类型匹配,您需要显式指定 type 参数:

Class<?> userClass = User.class;
Mockito.<Class<?>>when(methodParameter.getParameterType()).thenReturn(userClass);

推荐