Integrationstest

BigPun

Mitglied
Hallo,

ich möchte einen Integrationstest schreiben und bin mir noch nicht sicher wie das aussehen sollte :)
In dem Test soll eine Methode getestet werden, die importierte Testdaten filtert.
Es gibt bereits einen normalen JUnit Test, der auf ein Mock zugreift und korrekt filtert!
Nun muss ich doch, so gehe ich davon aus, den mock sozusagen durch das reelle System ersetzen...?! Ist das grundsätzlich richtig?
Bzw. was ist der Unterschied zwischen Integ.- und JUnit-Tests?

So sieht mein JUnit Test aus:
Java:
@Test
  public void testFilterOldPositions() {
    String defaultValue = "default";
    String valuationDateKey = "valuationDate";
    Preferences preferences = mock(Preferences.class);
    when(preferences.get(valuationDateKey, defaultValue)).thenReturn("2011-01-01");

    try {
      ArrayList<PositionInDto> positions = new ArrayList<PositionInDto>();
      int pos = 1;
      positions.add(createPosition(Long.valueOf(pos++), Date.valueOf("2010-02-02"))); // should be filtered
      positions.add(createPosition(Long.valueOf(pos++), Date.valueOf("2010-04-04"))); // should be filtered
      positions.add(createPosition(Long.valueOf(pos++), Date.valueOf("2012-03-03"))); // shouldn't be filtered
      positions.add(createPosition(Long.valueOf(pos++), Date.valueOf("2012-05-05"))); // shouldn't be filtered

      SapFetchOrderHelper sapFetchOrderHelper = new SapFetchOrderHelper();
      sapFetchOrderHelper.setPreferences(preferences);
      sapFetchOrderHelper.filterOldPositions(positions);

      int numberOfRemainingPositions = 2;
      assertEquals(numberOfRemainingPositions, positions.size());

    } catch (Exception e) {
      fail();
    }
  }
 

mvitz

Top Contributor
Richtig, für einen Integrationstest sollten alle relevanten Komponenten in der "richtigen" Ausführung verwendet werden.

Eine Anmerkung noch zu dem Test unten:
1) Das try {...} catch(...) { fail(); } kann man sich sparen. Wenn eine Exception fliegt, failed ein JUnit Test sowieso.

2) Anstatt nur die Anzahl der Elemente zu vergleichen, könnte man noch überprüfen ob auch wirklich die richtigen Objekte noch in der Liste sind.
 

Neue Themen


Oben