Xin chào, tôi đã gặp phải sự cố khi cố gắng viết một trường hợp kiểm tra JUnit và tương đối mới với Mockito.Mockito - thenCallRealMethod() trên hàm void
Tôi có chức năng của một lớp mà tôi đang chế nhạo, chức năng này xảy ra là loại trả lại khoảng trống. Khi gọi hàm này từ lớp giả của tôi, đó là sự hiểu biết của tôi (và gỡ rối kinh nghiệm) rằng nó KHÔNG gọi hàm ban đầu. Để khắc phục điều này tôi đã cố gắng sử dụng một "khi" với một "thenCallRealMethod()".
when(instance.voidFunction()).thenCallRealMethod();
"voidFunction" có đầy đủ logic mà tôi KHÔNG muốn kích hoạt. Tôi đã trích xuất những điều này khi phát biểu để tránh điều đó. Tôi đã đọc rằng tôi nên sử dụng định dạng doReturn().when().voidFunction()
, tuy nhiên làm điều này không gọi phương thức thực. Nó cũng là sự hiểu biết của tôi rằng tôi không thể sử dụng một Spy ở đây, do thực tế là tôi không muốn voidFunction() được gọi trước khi các câu lệnh "when". Bất kỳ trợ giúp được đánh giá cao tôi xin lỗi nếu đây là một giải pháp rất dễ dàng như sự hiểu biết của tôi về mockito không phải là rất tuyệt vời mặc dù đọc khá một chút. Cảm ơn!
Câu trả lời của tôi cho [câu hỏi này] (http://stackoverflow.com/q/11462697) giải thích lý do tại sao tôi nghĩ cách làm/khi làm việc tốt hơn so với khi/sau đó. Nếu bạn chỉ học Mockito, thì bây giờ là lúc để đọc nó. –
Cảm ơn bạn thực sự hữu ích, tôi đã học/dựa vào các tệp thử nghiệm của mình trong các tệp đã tồn tại trong codebase cũ của chúng tôi và đã thấy cả hai cách nhưng tôi đồng ý với lời khuyên của bạn sau khi chạy vào các nhược điểm của khi/sau đó hai lần đã là – CRDamico
Nhầm lẫn người đọc trong tương lai cú pháp có thể. Xem xét cẩn thận bạn nên. –