Die beste Methode, um die Testkonsole c # app zu testen

7

Ich habe eine einfache Konsolen-App. Es wird mit einem normalen Hauptprogramm abgefeuert und das gesamte Programm wird im Hauptteil wiedergegeben. Es verwendet die Befehlszeilen-Parser-Bibliothek . Dann habe ich ein zweites Projekt in der Lösung, das Komponententests für die Anwendung enthält. Aber ich finde keinen guten Weg, Prozesse des Hauptprogramms aus den Tests zu starten. Mein aktueller Code für den eigentlichen Start des Prozesses sieht in etwa so aus.

%Vor%

Ich habe versucht,

einzustellen %Vor%

bis

%Vor%

und

%Vor%

Aber muss ich den gesamten relativen Pfad für die ausführbaren Konsolenanwendungen angeben oder gibt es eine verfeinerte Methode, Prozesse der "getesteten" Anwendung zu starten? Zuerst hatte ich meine Tests als Klasse im "Hauptprogramm" und dann funktionierte es gut. Die Probleme begannen, als ich die Tests in ihr eigenes Projekt verlagerte. Deshalb vermute ich, dass ein Weg das Problem oder etwas dieser Art ist.

Ich habe auch versucht Running Program.Main aber das fühlt sich einfach so falsch an:)

    
inquam 24.08.2012, 06:47
quelle

2 Antworten

19

Ich würde vorschlagen, Ihre Bewerbung in:

umzugestalten
  • Program - Ein Einstiegspunkt, der die Argumente analysiert und eine Settings -Instanz
  • erstellt
  • Settings - Einstellungen für die Anwendung (nach Geschmack umbenennen)
  • BusinessClass - (definitiv umbenennen!) die eigentliche Arbeit, die eine Settings instance
  • akzeptiert

Jetzt können Sie die Dinge separat testen:

  • Testen Sie die Analyse in Settings , d. h., verwenden Sie die Parser-Bibliothek korrekt
  • Ihre Geschäftslogik, bei der die Unit-Tests entsprechende Instanzen von Settings erstellen

Wenn möglich, sollten Sie Ihre Geschäftslogik natürlich in separate Klassen für separate Probleme aufteilen und diese einzeln testen. Wir wissen nicht wirklich genug, um hier konkrete Vorschläge machen zu können.

    
Jon Skeet 24.08.2012 12:48
quelle
1

Ich weiß nicht, warum sich Program.Main für dich falsch anfühlt.
Sie sollten nicht den Konsolenmechanismus testen ... nur die Programmlogik, die Sie einfach so machen können.

    
Jony Adamit 24.08.2012 07:02
quelle

Tags und Links