mockito 抛出 InvalidUseOfMatchersException
mockito throwing InvalidUseOfMatchersException
My getUserDetails class 将 User(custome class) 和字符串作为参数,return User。如果我如下使用 Mockito 匹配器:
when(authService.getUserDetails(any(User.class),anyString())).thenReturn(any(User.class));
它给了我 InvalidUseOfMatchersException 预期的 2 个匹配器,找到了 3 个。我不能使用上面的表达式吗?
您应该将 User
的实例传递给 thenReturn
,而不是匹配器。 User
实例将在调用 authService.getUserDetails
时返回。
匹配器不用于 returning。
.thenReturn(any(User.class));
你必须 return 这里有一些有形的东西。匹配器仅用于匹配输入,以便您可以在提供特定输入时指定 returned 的内容。你仍然需要有一个真正的输出到 return.
此代码有效:
User user=new User();
when(authService.getUserDetails(any(User.class),anyString())).thenReturn(user));
因为应该有一个值而不是在 thenReturns() 中输入
My getUserDetails class 将 User(custome class) 和字符串作为参数,return User。如果我如下使用 Mockito 匹配器:
when(authService.getUserDetails(any(User.class),anyString())).thenReturn(any(User.class));
它给了我 InvalidUseOfMatchersException 预期的 2 个匹配器,找到了 3 个。我不能使用上面的表达式吗?
您应该将 User
的实例传递给 thenReturn
,而不是匹配器。 User
实例将在调用 authService.getUserDetails
时返回。
匹配器不用于 returning。
.thenReturn(any(User.class));
你必须 return 这里有一些有形的东西。匹配器仅用于匹配输入,以便您可以在提供特定输入时指定 returned 的内容。你仍然需要有一个真正的输出到 return.
此代码有效:
User user=new User();
when(authService.getUserDetails(any(User.class),anyString())).thenReturn(user));
因为应该有一个值而不是在 thenReturns() 中输入