Ich versuche, einen Komponententest für eine einfache Bean zu schreiben, die in meinem Programm verwendet wird, um Formulare zu validieren. Die Bohne ist mit @Component
kommentiert und hat eine Klassenvariable, die initialisiert wird mit @Value("${this.property.value}") private String thisProperty;
Füllen der Quelle @Wert während des Komponententests
Ich mag Unit-Tests für die Validierungsmethoden innerhalb dieser Klasse schreiben, aber, wenn möglich, ich möchte, dies zu tun, ohne die Eigenschaften unter Verwendung von Datei . Meine Überlegungen dahinter sind, dass sich der Wert, den ich aus der Eigenschaftendatei gezogen habe, nicht auf meinen Testfall auswirkt. Mein Testfall testet den Code, der den Wert überprüft, nicht den Wert selbst.
Gibt es eine Möglichkeit, Java-Code innerhalb meiner Testklasse zu verwenden, um eine Java-Klasse zu initialisieren und die Spring @ Value-Eigenschaft in dieser Klasse zu füllen und sie dann zum Testen zu verwenden?
Ich habe diese How To gefunden, die in der Nähe zu sein scheint, aber immer noch eine Eigenschaftendatei verwendet. Ich würde lieber alles Java-Code sein.
Dank
Genau das, was ich versuche, zu tun und was ich suchte den Wert in meiner Klasse zu setzen, danke! – Kyle
Oder sogar ohne Spring-Abhängigkeiten, indem das Feld auf den Standardzugriff geändert wird (Paket geschützt), um es für den Test einfach zugänglich zu machen. –
Beispiel: 'org.springframework.test.util.ReflectionTestUtils.setField (classUnderTest," Feld "," Wert ");' – Olivier