Ich benutze Mockito (1.10.19) in Eclipse Mars 2.0 für Java EE Tests, um ein Offline-Repository zu testen. Diese Klasse benötigt eine InitialData-Klasse, um Informationen abzurufen.Mockito Ausnahmen: Wo ist meine Argumentation falsch?
Meine erste Aufgabe ist das Hinzufügen einer Adresse zur initialData-Liste. Hier ist das Verfahren neben der Klasse und Importe:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import com.qa.smurf.InitialData;
import com.qa.smurf.entities.Address;
import com.qa.smurf.repositories.offline.AddressRepositoryOffline;
import junit.framework.TestCase;
@RunWith(MockitoJUnitRunner.class)
public class AddressRepositoryOfflineTest extends TestCase {
@Test
public void testPersistAddress() {
Address newAddress = new Address("a", "a");
ArrayList<Address> addList = new ArrayList<Address>();
addList.add(newAddress);
AddressRepositoryOffline aro = Mockito.mock(AddressRepositoryOffline.class);
InitialData initialData = Mockito.mock(InitialData.class);
Mockito.when(initialData.getAddresses()).thenReturn(addList);
assertEquals(newAddress, aro.getAddresses().get(0));
}
}
Welche AddressRepositoryOffline Klasse getAddresses nennen sollte() -Methode, die anschließend ruft die InitialData Klasse getAddresses() Methode und geben die addList Arraylist.
public class AddressRepositoryOffline implements AddressRepository {
@Override
public ArrayList<Address> getAddresses() {
return initialData.getAddresses();
}
}
public class InitialData {
public ArrayList<Address> getAddresses() {
return this.addresses;
}
}
Ich laufe dann in die folgenden Fehler:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangecheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at OfflineRepository.AddressRepositoryOfflineTest.testPersistAddress(AddressRepositoryTest.java:37)
Linie 37 in Frage
assertEquals(newAddress, aro.getAddresses().get(0));
mit einigen mehr Fehler mit JUnit und MockitoJUnitandHigherRunnerImpl zu tun
Klar I Ich verstehe nicht, wie man Mockito richtig implementiert. Könnte mir jemand helfen?
Vielen Dank,
Sie so viel Dank. – shirafuno