Die Zuordnung zwischen Testkode und zu testendem Kode sollte möglichst einfach nachvollziehbar und stringent sein. Ferner sollten Testklassen bzw. Testmethoden auch allgemeinen best Practices wie z.B Größe der Klasse / Methode genügen.
Simple Strukturierung nach “Testklasse pro zu testender Klasse mit diversen Testmethoden” stößt besonders im Hinblick auf Größe und Komplexität oft an Grenzen.
Siehe auch:
Hat eine Klasse wenige Features zu testen mit entsprechend wenig Testkode, so kann man diese in einer übergeordneten Testklasse zusammenführen. In dieser Testklasse werden die Tests für einzelne Features mit Hilfe von Junit 5 nested Testklassen gruppiert.
Namenskonvention
Beispiel:
class MyClassTest {
@Nested
class MyMethod {
// Testmethoden für die Methode myMethod der Klasse MyClass
}
// Weitere nested Testklassen
}
Namenskonvention
Diese Namenskonvention orientiert sich an der üblichen Namensgebung und bringt mit dem Zusatz “_<Name Feature>_” ein einfaches Unterscheidungskriterium. Trennung per “_” ist wichtig, um den Namen der Klasse eindeutig vom Namen des Features zu trennen.
Beispiel: MyClass_MyMethod_Test
Innerhalb einer Testmethode gibt folgende Abschnitte
(siehe auch http://xunitpatterns.com/XUnitBasics.html)
Diese bieten eine wiederkehrende Strukturierung der Testmethoden.
Beispiel:
// Description
...
// Setup
...
// Exercise
...
// Verify
...