Tôi đang cố xác minh rằng lớp tôi đang thử nghiệm gọi phương thức của lớp phụ thuộc chính xác. Vì vậy, tôi đang cố gắng để phù hợp với các thông số phương pháp, nhưng tôi không thực sự quan tâm đến các giá trị thực tế trong thử nghiệm này, bởi vì tôi không muốn làm cho thử nghiệm của tôi giòn.Cách đối sánh một tham số null có thể có trong Mockito
Tuy nhiên, tôi đang chạy vào rắc rối cài đặt nó lên vì Mockito đã quyết định rằng hành vi của tôi đang mong đợi là một lỗi: https://github.com/mockito/mockito/issues/134
Vì vậy what't cách chính xác để xác định một Matcher cho một tham số mà có thể là null?
Với sự cố # 134 "cố định", mã này không thành công do đối sánh chỉ khớp trong trường hợp đầu tiên. Làm thế nào tôi có thể xác định một matcher để làm việc trong tất cả 4 trường hợp?
MyClass c = mock(MyClass.class);
c.foo("hello", "world");
c.foo("hello", null);
c.foo(null, "world");
c.foo(null, null);
verify(c, times(4)).foo(anyString(), anyString());
Đây có vẻ là câu trả lời đúng từ Mockito 2.0 trở đi. Trong các phiên bản của Mockito trước 2.0, mã ban đầu của bạn sử dụng 'anyString()' sẽ có tác dụng, nhưng đây là một thay đổi đột phá mà nhóm Mockito đã giới thiệu với 2.0. –
Thao tác này không hoạt động nữa. Từ tài liệu - '' 'Vì Mockito 2.1.0 phương pháp này sẽ thực hiện kiểm tra kiểu do đó
null
giá trị không được ủy quyền''' –