You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Enhetstesting er testing av de minste enhetene i et program, dvs. teste at metodene i en klasse implementerer ønsket oppførsel. JUnit er et praktisk rammeverk for å gjøre enhetstesting av Java–klasser. Enkelt sagt består enhetstesting med JUnit, også kalt JUnit-testing, i å lage instanser av klassen som skal testes og prøve ulike sekvenser av metodekall og sjekke om verdiene de returnerer stemmer med "fasiten". La oss ta følgende Counter-klasse som eksempel.

Counter er ment å implementere en teller fra en start-verdi til en slutt-verdi. Hver gang vi caller count()-metoden, så skal telleren øke med 1, men bare dersom vi ennå ikke har nådd slutt-verdien. Teller-verdien får vi tak i med getCounter()-metoden.

public class Counter {
   private int start, end;
   private pos;
   public Counter(int start, int end) {
      this.start = start;
      this.end = end;
   }
   public int getCounter() {
      return this.pos;
   }
   public void count() {
      if (pos > end) {
         return;
      }
      this.pos = this.pos + 1;
   }
}

Før vi tester Counter-klassen, må vi formulere oppførselen som testbare utsagn om metode-kall og returverdier. La oss gjøre det for Counter-klassen:

  • Etter at klassen er instansiert med new Counter(start, end) skal telleren ha startverdien, med andre ord må getCounter() returnere start.
  • Etter et kall til count(), skal getCounter() returnere start + 1, men bare dersom denne verdien er mindre enn end.
  • Generelt: dersom getCounter() returnerer n og n er mindre enn end, så skal count() øke telleren og et nytt kall til getCounter() returnere n + 1.

 

 

  • No labels