Tôi có một phương pháp được kiểm tra có chứa đoạn mã sau:Mockito: chế giễu một ArrayList sẽ được looped trong một vòng lặp for
private void buildChainCode(List<TracedPath> lines){
for(TracedPath path : lines){
/.../
}
}
đơn vị mã kiểm tra của tôi trông như thế này:
public class ChainCodeUnitTest extends TestCase {
private @Mock List<TracedPath> listOfPaths;
private @Mock TracedPath tracedPath;
protected void setUp() throws Exception {
super.setUp();
MockitoAnnotations.initMocks(this);
}
public void testGetCode() {
when(listOfPaths.get(anyInt())).thenReturn(tracedPath);
ChainCode cc = new ChainCode();
cc.getCode(listOfPaths);
/.../
}
}
Vấn đề là, trong khi chạy thử nghiệm, mã thử nghiệm không bao giờ đi vào vòng lặp for. Điều gì khi các điều kiện tôi nên chỉ định, để vòng lặp for sẽ được nhập? Hiện tại tôi đã chỉ định when(listOfPaths.get(anyInt())).thenReturn(tracedPath)
, nhưng tôi đoán nó không bao giờ được sử dụng.
Cảm ơn, đó là một ý tưởng tuyệt vời. Một lời giải thích tốt là tốt. :) –
nếu bạn không biết các yếu tố sẽ được thêm vào danh sách thì sao? – BlueShark
Bạn chọn các yếu tố, tùy thuộc vào những gì bạn đang cố gắng kiểm tra. –