Io-11-lab-odp02

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zadania – Automatyzacja wykonania testów – JUnit

<< Powrót do strony z zadaniami

Odpowiedzi

Zadanie 2

Na listingu 3 poniżej zaprezentowano szkic rozwiązania zadania 2.

 package elearning;
 
 import java.io.*;
 import java.util.*;
 import junit.framework.TestCase;
 
 public class CiagGeometrycznyTest extends TestCase {
     GeometricSeries ciag = null;
 
     public CiagGeometrycznyTest(String arg0) {
          super(arg0);
     }
 
     protected void setUp() throws Exception {
         super.setUp();
         ciag = new CiagGeometryczny();
     }
 
     protected void tearDown() throws Exception {
         super.tearDown();
         ciag = null;
     }
 
     public void testLadujDane() throws Exception {
         ciag.ladujDane(new StringReader("1, 2, 4, 8, 16"));
         assertEquals(Arrays.asList(new Double[] { new Double(1), new Double(2), new Double(4), new Double(8), new Double(16) )),
         ciag.podajDane());
     }
 
     public void testLadujNieprawidloweDane() throws Exception {
         try {
             ciag.ladujDane(new StringReader("Ala ma kota"));
             fail(“Nie wygenerowano wyjatku NumberFormatException”);
         } catch (NumberFormatException ex) { }
     }
 
     public void testObliczQ() throws Exception {
         ciag.ladujDane(new StringReader("1, 2, 4, 8, 16"));
         assertEquals(2.0, ciag.obliczQ(0.0001), 0.0001);
     }
 }

Listing 3. Rozwiązanie zadania 2.

Oczywiście przypadki testowe nie sprawdzają wszystkich warunków jak np. błąd w strumieniu wejściowym polegającym na odczycie z tego strumienia zamiast nieprawidłowych danych, różne ciągi w tym także takie, które nie są geometryczne itd.