Phương pháp cần thiết là Mockito # verify :
public static <T> T verify(T mock,
VerificationMode mode)
mock
là đối tượng bị chế giễu của bạn và mode
là đối tượng VerificationMode
mô tả cách xác định giả. Các chế độ có thể là :
verify(mock, times(5)).someMethod("was called five times");
verify(mock, never()).someMethod("was never called");
verify(mock, atLeastOnce()).someMethod("was called at least once");
verify(mock, atLeast(2)).someMethod("was called at least twice");
verify(mock, atMost(3)).someMethod("was called at most 3 times");
verify(mock, atLeast(0)).someMethod("was called any number of times"); // useful with captors
verify(mock, only()).someMethod("no other method has been called on the mock");
Bạn sẽ cần các nhập khẩu tĩnh này từ Mockito
lớp để sử dụng verify
phương thức và các chế độ xác minh sau:
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.atMost;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
Vì vậy, trong trường hợp của bạn, cú pháp đúng sẽ là:
Mockito.verify(mock, times(4)).send()
Điều này xác minh rằng phương thức send
được gọi 4 lần trên đối tượng bị chế giễu. Nó sẽ thất bại nếu nó được gọi ít hơn 4 lần.
Nếu bạn chỉ muốn kiểm tra, nếu phương thức đã được gọi một lần, thì bạn không cần phải vượt qua a VerificationMode
. Một đơn giản
verify(mock).someMethod("was called once");
sẽ là đủ Nó sử dụng nội bộ verify(mock, times(1)).someMethod("was called once");
.
Có thể có nhiều cuộc gọi xác minh trên cùng một giả để đạt được xác minh "giữa". Mockito không hỗ trợ những thứ như thế này verify(mock, between(4,6)).someMethod("was called between 4 and 6 times");
, nhưng chúng ta có thể viết
verify(mock, atLeast(4)).someMethod("was called at least four times ...");
verify(mock, atMost(6)).someMethod("... and not more than six times");
thay vào đó, để có được hành vi tương tự. Các giới hạn được bao gồm , vì vậy trường hợp thử nghiệm có màu xanh khi phương thức được gọi là 4, 5 hoặc 6 lần.
Mockito.verify(mock, times(4)).send()
. Tôi tự hỏi tại sao bạn "di chuyển"send()
cuộc gọi phương thức bên trongverify
phương thức. Bạn đã có cú pháp đúng.