Trong ví dụ sau:Đảm bảo phương pháp không chế giễu không được gọi trong Mockito
Execution execution = mock(Execution.class);
when(execution.getLastQty()).thenReturn(1000.0);
when(execution.getLastPrice()).thenReturn(75.0);
order.onFillReceived(execution);
assertEquals(0, order.getLeavesQty(), 0);
Thực hiện có nhiều phương pháp khác mà không nên được gọi. Chỉ có hai phương pháp đã được chế nhạo nên được sử dụng trong thử nghiệm này và nên được gọi. Nếu bất kỳ phương thức nào khác được gọi, thì thử nghiệm sẽ thất bại.
Làm cách nào để yêu cầu Mockito thất bại nếu có bất kỳ phương pháp nào khác được gọi?
Tại sao bạn muốn? Nếu lớp 'Order' xảy ra để gọi các phương thức khác của lớp' Execution', và nó không ảnh hưởng đến kết quả của hành vi mà bạn đang thử nghiệm, thì tại sao bạn muốn thử nghiệm thất bại? –
Trong trường hợp cụ thể này ... hãy nói rằng order.onFillReceived gió lên chỉ định order.getLeavesQty dựa trên phương thức từ execution.getWrongQty(). Bởi vì getWrongQty sẽ trả về giá trị mặc định cho phương thức đó (0), khẳng định sẽ vẫn làm việc ngay cả khi getLeavesQty không được thiết lập bởi giá trị đúng. Điều này chỉ vì giá trị mặc định cho các giá trị sai có cùng giá trị với giá trị được xác nhận trong thử nghiệm. – user465342
Tôi không thực sự tuân theo điều đó. Nhưng nó sẽ không được sạch hơn để lựa chọn giá trị cho các thử nghiệm mà không thể dễ dàng xảy ra do tai nạn? Vì vậy, nếu kiểm tra vượt qua, bạn biết rằng việc tính toán đã xảy ra chính xác. Nếu thử nghiệm không chứng minh rằng giá trị chính xác đã được tính toán (thay vì xảy ra do tai nạn), tôi sẽ đặt câu hỏi về giá trị của thử nghiệm. –