使用 Mockito 将 Class<T> 作为参数的方法存根
有一个泛型方法将类作为参数,我用Mockito解决它的问题。该方法如下所示:
public <U extends Enum<U> & Error, T extends ServiceResponse<U>> T validate(
Object target, Validator validator, Class<T> responseClass,
Class<U> errorEnum);
这太可怕了,至少对我来说是这样...我可以想象没有它的生活,但代码库的其余部分很高兴地使用它......
我打算在我的单元测试中存根此方法以返回一个新的空对象。但是我该如何用 mockito 做到这一点呢?我试过了:
when(serviceValidatorStub.validate(
any(),
isA(UserCommentRequestValidator.class),
UserCommentResponse.class,
UserCommentError.class)
).thenReturn(new UserCommentResponse());
但是由于我正在混合和匹配匹配器和原始值,因此我得到“org.mockito.exceptions.misusing.InvalidUseOfMatchersException:参数匹配器的无效使用!”