使用Mockito Matchers.any()和android.support.annotation.IntDef自定义注释

我正在尝试编写一个Junit测试,它将validation是否调用了以下方法:

public long executeRequest(@RequestCodes.Code.RequestAnnotation int requestCode, Object requestInformation, RequestListener requestListener) { boolean success = false; ... do stuff ... return success ? 1L : -1L; } 

在测试中使用:

 Mockito.when(mockedRequest.executeRequest(Matchers.any(RequestCodes.Code.RequestAnnotation.class), Matchers.any(RequestWrapper.class), Matchers.any(RequestListener.class))).thenReturn(1L); 

RequestCodes.Code.RequestAnnotation类是一个基本的indef接口,使用int来标识使用开关进行的调用。 非常喜欢这个 。

Matchers.any(RequestCodes.Code.RequestAnnotation.class)在这里不起作用,我尝试过Matchers.any()Matchers.anyInt()Matchers.isA(RequestCodes.Code.RequestAnnotation.getClass()) (以及正如其他任何想到的那样)没有成功。

任何建议将不胜感激。

目前,您可以使用@SuppressWarnings("WrongConstant")针对此特定测试来抑制此错误。 它工作正常,并保持您的生产清洁。