Tôi đang cố gắng để giả lập một số lớp Mongo vì vậy mà tôi không cần một kết nối (thứ khá chuẩn) nhưng đoạn mã sau mang lại cho tôi những vấn đề:Mockito - 0 quẹt Dự kiến, 1 ghi (InvalidUseOfMatchersException)
when(dbCollection.find(isA(DBObject.class))).thenReturn(dbCursor);
Chạy này có được là tôi:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
sử dụng không hợp lệ của quẹt luận!
0 quẹt mong đợi, 1 ghi:
tại ... GridFileManagerTest.beforeClass (GridFileManagerTest.java:67)ngoại lệ này có thể xảy ra nếu quẹt được kết hợp với các giá trị nguyên:
// không đúng: someMethod (anyObject(), "Chuỗi thô");Khi sử dụng đối sánh, tất cả đối số phải được cung cấp bởi đối sánh.
Ví dụ:
// chính xác:
someMethod (anyObject(), eq ("String by matcher"));Để biết thêm thông tin, hãy xem javadoc cho lớp Đối sánh.
Nếu tôi được làm mặc dù điều này:
when(dbCollection.find(mock(DBObject.class))).thenReturn(dbCursor);
nó không còn có vấn đề đó. Điều này dường như không hoàn thành những gì tôi muốn mặc dù - Tôi muốn trả về giá trị khi phương thức được gọi với một đối tượng kiểu DBObject.
Suy nghĩ?
Xem phần '[EDIT]' của câu trả lời đầu tiên. Có lẽ bạn có cùng một vấn đề? http://stackoverflow.com/questions/10828843/powermockito-got-invaliduseofmatchersexception-when-use-matchers-mocking-static – bezmax
Vậy DBCollection là một đối tượng giả lập Mockito? –