Normalerweise hat man die Daten, die für Tests benötigt werden, in den Testklassen selbst. Im Endeffekt sind einfache Strings, die als Parameter für die testenden Methoden gelten, auch nix anderes als Testdaten.
Wenn diese Daten zu groß oder umständlich sind, in eine
Unit zu stecken (oder wenn sie die Lesbarkeit dieser arg beeinträchtigen) spricht nichts dagegen, diese aus anderen Resourcen, bspw. Dateien zu lesen.
In pseudocode würde dann das bspw. so aussehn:
Code:
const WRONG_ROOT_DATA_FILE = './wrongRoot.xml';
const CORRECT_ROOT_DATA_FILE = './correctRoot.xml';
const CORRECT_ROOT_WITH_CHILDREN_DATA_FILE = './correctRootWithChildren.xml';
[Data] loadXmlDataFromFile(path) { sehr, sehr, sehr einfacher Code zum laden einer Datei }
test_processTree_wrongRoot()
data = loadXmlDataFromFile(WRONG_ROOT_DATA_FILE);
// Test mit den daten
test_processTree_correctRoot()
data = loadXmlDataFromFile(CORRECT_ROOT_DATA_FILE);
// Test mit den daten
Ich würde aber empfehlen, das Laden und Verarbeiten zu trennen. Zum einen ist es dann einfacher Testbar, zum anderen kannst du dann bspw. das Laden auch woanders verwenden, oder solltest du die Daten mal anders laden wollen, wäre das dann auch kein Problem