Tôi cố gắng để viết một bài kiểm tra Junit mà sẽ xác minh xem các phương pháp sau đây được gọi là:Sử dụng Mockito Matchers.any() với android.support.annotation.IntDef chú thích tùy chỉnh
public long executeRequest(@RequestCodes.Code.RequestAnnotation int requestCode, Object requestInformation, RequestListener requestListener) {
boolean success = false;
... do stuff ...
return success ? 1L : -1L;
}
trong một thử nghiệm sử dụng:
Mockito.when(mockedRequest.executeRequest(Matchers.any(RequestCodes.Code.RequestAnnotation.class), Matchers.any(RequestWrapper.class), Matchers.any(RequestListener.class))).thenReturn(1L);
Lớp RequestCodes.Code.RequestAnnotation là giao diện indef chính dùng int để nhận dạng cuộc gọi thực hiện bằng công tắc. Khá giống như this.
Matchers.any(RequestCodes.Code.RequestAnnotation.class)
sẽ không hoạt động tại đây và tôi đã thử Matchers.any()
, Matchers.anyInt()
, Matchers.isA(RequestCodes.Code.RequestAnnotation.getClass())
(cũng như bất kỳ điều gì khác mà bạn nghĩ) không thành công.
Mọi đề xuất sẽ được đánh giá cao.
'anyInt()' chắc chắn sẽ hoạt động, chỉ Lint sẽ khiếu nại. Bạn cũng có thể giới thiệu một trình phù hợp tùy chỉnh cho trường hợp sử dụng này. – Egor
Đã qua rất giống công việc hôm nay. [Vấn đề 222711] (https://code.google.com/p/android/issues/detail?id=222711) có đáng để mắt đến không? – piratemurray