NUnit Test für den ConfigurationManager

nunit test configurationmanagerWährend der Arbeiten zur Erweiterung meiner Vertragsverwaltung TSVertrag 5 um ein Modul zur Benachrichtigung bei bestimmten Terminen habe ich versucht, die Unit-Tests für eine DLL zu schreiben. Bei diesen Unit-Tests  sollen Einstellungen aus der .config Datei der Anwendung ausgelesen und getestet werden. Es ging darum, ein paar grundsätzliche Einstellungen für einen SMTP-Client, realisiert mit der .Net Klasse SmtpClient aus zu lesen und auf Plausibilität zu prüfen. Das ganze ist mit der .NET ConfigurationManager Klasse realisiert.

Bisher habe ich bei den NUnit-Tests die ConfigurationManager Klasse etwas stiefmütterlich behandelt, wenn es einen Test gab, dann war dieser für die Anwendung selbst, also für die .exe geschrieben. Diese lassen sich natürlich einwandfrei testen. Zugegeben, ich bin etwas „blauäugig“ an die Sache heran gegangen und habe einfach einen Test für eine DLL geschrieben, die Daten aus der .Config Datei der Anwendung auslesen. Ich habe natürlich geglaubt, dass das funktioniert.

Aber passiert ist das Folgende: Der Test meldete, das die getestete Einstellung einen Null-Wert liefert. Natürlich glaubte ich zuerst an einen Fehler im  Unit-Test selbst. Dann eventuell einen Fehler in der Routine selbst, aber alles war einwandfrei.  Mit etwas längerem Nachdenken kommt man eigentlich darauf, dass das so nicht funktionieren kann. Die Dll wird in einem Debug-Projekt erstellt, welches aber auch überhaupt keinen Kontakt mit der eigentlichen Anwendung hat. Getestet wird die Dll und nichts anderes. Diese weiß nichts von der Anwendung selbst und erwartet eine .config Datei natürlich unter dem Namen Dll.config. Als schnellen „Hack“ habe ich nun einfach die .config Datei der Anwendung als Dll.config in das Debug Verzeichnis der DLL kopiert. Man soll es kaum glauben, nun funktioniert der Test. Unglaublich, man macht alles richtig und schon funktioniert es -). Natürlich ist das nicht das Optimum für einen Test, aber bis zu einer besseren Lösung sollte der Weg hier reichen.

Die Vertragsverwaltung TSVertrag hat nun einen zusätzlichen Webauftritt.

 

Nach oben scrollen
Cookie Consent mit Real Cookie Banner