Mam metodę podstawie testu, który zawiera następujący fragment:Mockito: szyderczy ArrayList, które zostaną zapętlone w pętli for
private void buildChainCode(List<TracedPath> lines){
for(TracedPath path : lines){
/.../
}
}
Moja jednostka kod testowy wygląda następująco:
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);
/.../
}
}
Problem polega na tym, że podczas wykonywania testu kod testowy nigdy nie przechodzi do pętli for. Kiedy należy określić warunki, aby wprowadzić pętlę for? Obecnie mam określony when(listOfPaths.get(anyInt())).thenReturn(tracedPath)
, ale myślę, że nigdy nie jest używany.
Dzięki, to świetny pomysł. Dobre wyjaśnienie. :) –
co, jeśli nie znasz elementów, które zostaną dodane do listy? – BlueShark
Wybierasz elementy, w zależności od tego, co próbujesz przetestować. –