Java Testklasse

Könntet ihr mir mal auf die Sprünge helfen, weshalb das durchgestrichen wird?

Folgendes Klasse gegeben:
Java:
public class Functionality {

    public static int[] arrayMultiplizieren(int[] arr, int factor) {
        if (arr == null) {
            throw new IllegalArgumentException();
        }

        if (arr.length < 2) {
            throw new LengthTooSmallException();
        }

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] * factor > 1000) {
                throw new ValueTooBigException();
            } else
                arr[i] = arr[i] * factor;
        }

        return arr;
    }
}

Hierzu habe ich folgende Testfälle geschrieben:

Code:
import static org.junit.Assert.*;

public class Test {

    @org.junit.Test (expected = LengthTooSmallException.class)
    
    public void fehlerfall1() {
        int []arr = {1};
        Functionality.arrayMultiplizieren(arr, 1);
    }
    
    @org.junit.Test (expected = ValueTooBigException.class)
    
    public void fehlerfall2() {
        int []arr = {1,3,5,6};
        Functionality.arrayMultiplizieren(arr, 1000);
    }
    
    @org.junit.Test
    
    public void grenzfall1() {
        int []arr = {1,3,5};
    
        assertEquals(9, Functionality.arrayMultiplizieren(arr, 1),0.00001);
    }

@org.junit.Test
    
    public void normalfall1() {
        int []arr = {1,3,5,7,9};
    
        assertEquals(25, Functionality.arrayMultiplizieren(arr, 1),0.00001);
    }


}


Das assertEquals bei grenzfall1 und normalfall1 wird bei mir durchgestrichen angezeigt.
 
arrayMultiplizieren liefert ein int-Array zurück. Es macht überhaupt keinen Sinn, ein Array mit 25 vergleichen zu wollen und dann auch noch ein delta für doubles anzugeben.
 
Also in der Functionality Klasse wird der array mit dem Faktor multipliziert und zurückgegeben. Meine Aufgabe besteht darin diese Funktion zu Testen. Die 2 Fehlerfälle haben funktioniert. Verstehe nur nicht warum das assertEquals durchgestrichen wird.
 
Also in der Functionality Klasse wird der array mit dem Faktor multipliziert und zurückgegeben. Meine Aufgabe besteht darin diese Funktion zu Testen. Die 2 Fehlerfälle haben funktioniert. Verstehe nur nicht warum das assertEquals durchgestrichen wird.
Dann überlege es Dir doch erst einmal auf einem Blatt Papier:

Was kommt raus, denn Du Functionality.arrayMultiplizieren(arr, 1) mit dem Array arr = {1,3,5,7,9} aufrufst. Was erwartest Du da?

Die 2 Fehlerfälle haben funktioniert.
Wobei die so an sich auch mangelhaft sind. Du prüfst ja gar nichts! Ein Test sollte immer ein Ergebnis abprüfen. Also bei einem Fehlerfall solltest Du prüfen, dass die LengthTooSmallException geworfen wird und bei dem anderen, dass die ValueTooBigException geworfen wird.
 

Neue Themen


Zurück
Oben