7.1 Branch Coverage

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

7.1 Branch Coverage
Hi, ich steh bei 7.1 bisschen auf dem Schlauch, vielleicht kann ja jemand weiterhelfen der die Aufgabe schon bearbeitet hat.

Nicht-void Methoden sollen ja mit assertEquals() getestet werden. Soll man sowohl in expected als auch in actuals die Methode aufrufen, weil die Methode laut Aufgabenstellung korrekt ist?

Und muss man dann bei void-Methoden auf die durch die Methode veraenderten Objekte zugreifen und diese dann vergleichen?


In jedem Test erstellst du ein entsprechendes Testobject und übergibts es an die zu testende Methode. Dann prüfst du mit Assert.assertEquals() ob der/das zurückgegebene Wert/object dem erwarteten entspricht.
So weit ich das sehe gibt es gar keine void methoden. Selbst Konstruktoren geben ja was zurück.

Sieh dir mal einige Pubtests an. Hier zum Beispiel eins aus der 1.Hausaufgabe Einheitenrechner aus class UnitsOfMeasurementPublicTest

protected static final double DELTABIG = 1e-7d;

@Test(timeout = 666)
public void pubTest_convertCelsiusToKelvin() {
	float in = 666.0815f;
	float expected = 939.2315f;
	float actual = UnitsOfMeasurement.convertCelsiusToKelvin(in);
	assertEquals("Input: " + in, expected, actual, Math.abs(expected * DELTABIG));
}

@Test(timeout = 666)
public void pubTest_convertGibiByteToBit() {
	int in = 666_0815;
	long expected = 57215965179412480L;
	long actual = UnitsOfMeasurement.convertGibiByteToBit(in);
	assertEquals("Input: " + in, expected, actual);
}

Nach dem Prinzip sollte auch dein Test aufgebaut sein. Natürlich ohne Timeout und statt assertEquals() aus junit nimmst du hier Assert.assertEquals() aus der Assert klasse.


Vielen Dank fuer die ausfuehrliche Antwort! Es ist dann doch weniger kompliziert als es scheint :slight_smile: