Tôi muốn xác minh thứ tự cụ thể trong đó các ký tự để đảm bảo rằng chúng không bị cắt xén. Tôi đã thử viết nó bằng cách sử dụng InOrder
nhưng có vẻ như không hoạt động, hoặc ít nhất là trong Mockito 1.8.5.Làm thế nào để kiểm tra trong Mockito cho thứ tự cụ thể của các cuộc gọi với cùng một đối số?
@Test
public void inOrderTest() throws IOException{
final String message = "Hello World!\n";
for(char c : message.toCharArray())
mockWriter.write(c);
final InOrder inOrder = inOrder(mockWriter);
for(char c : message.toCharArray())
inOrder.verify(mockWriter).write(c);
inOrder.verifyNoMoreInteractions();
}
Bài kiểm tra trên không thành công với thông điệp:
Verification in order failure:
mockWriter.write(108);
Wanted 1 time:
-> at org.bitbucket.artbugorski.brainfuj.interpreter.InterpreterTest.inOrderTest(InterpreterTest.java:62)
But was 3 times. Undesired invocation:
-> at org.bitbucket.artbugorski.brainfuj.interpreter.InterpreterTest.inOrderTest(InterpreterTest.java:58)
Làm sao người ta viết một bài kiểm tra Mockito cho điều đó?
EDIT: Filed như lỗi http://code.google.com/p/mockito/issues/detail?id=296
Slick. Tôi không biết về tính năng đó của Captor arg. –
đôi khi dễ dàng kiểm tra kết quả/đầu ra/kết quả (nếu có thể), sau đó đọc mã kiểm tra này. Tôi có nghĩa là nếu chúng ta biết rằng nó sẽ trả lại cho chúng tôi: "một số sting chúng tôi mong đợi" cho các đối số có thể. – ses