2016-08-02 2 views
6

Я пытаюсь написать тест Junit который будет проверять ли называется следующий метод:Использование Mockito Matchers.any() с android.support.annotation.IntDef аннотаций

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 идентифицировать вызов, чтобы сделать с помощью переключателя. Очень нравится this.

Matchers.any(RequestCodes.Code.RequestAnnotation.class) не будет работать здесь, и я попытался Matchers.any(), Matchers.anyInt(), Matchers.isA(RequestCodes.Code.RequestAnnotation.getClass()) (как и все остальное, что пришло на ум) без успеха.

Любые предложения были бы очень признательны.

+2

'anyInt()' обязательно должен работать, только Lint будет жаловаться. Вы также можете ввести специальный шаблон для этого варианта использования. – Egor

+0

Нашли то же самое на работе сегодня. Могли [выпустить 222711] (https://code.google.com/p/android/issues/detail?id=222711) заслуживать внимания? – piratemurray

ответ

2

На данный момент вы можете подавить эту ошибку, используя @SuppressWarnings("WrongConstant") для этого конкретного теста. Он отлично работает и сохраняет чистоту вашего производства.