Testprozess.Starten?

Bin ich erstellen, eine Anwendung, verwalten Sie mehrere Instanzen von einem externen Dienstprogramm, versorgen jeden mit den Daten und dem abrufen der Ergebnisse.

Aber wie Schreibe ich unit-tests für die Klasse stieß ich auf ein problem.

Wie testen Sie, dass die Ziel-Methode tatsächlich einen Prozess startet (über eine Eigenschaft), wenn Sie aufgerufen?

Habe ich versucht:

  • Der Klasse ausführen eines externen Prozesses zu verwenden und dann GetProcessesByName zu prüfen, ob es begonnen hat.
  • Verwenden Umlenkung der Ausgabe, z.B. mit dem größer-als-Zeichen auf der echo-etwas in eine Datei und testen Sie seine Existenz

Fühle ich mich wie emitting code und/oder dem erstellen noch eine andere exe zum testen ist übertrieben.

Dies ist die genaue Methode:

public void Start()
{
    if (!_isRunning) {
        var startInfo = new ProcessStartInfo() {
            CreateNoWindow = true,
            UseShellExecute = true,

            FileName = _cmdLine,
            Arguments = _args
        };

        _process = Process.Start(startInfo);
        _isRunning = true;

    } else {
        throw new InvalidOperationException("Process already started");

    }
}

Möchte ich unit-Tests ist es so, dass, wenn nichts läuft (_isRunning == false), wird ein neuer Prozess erzeugt.

Fühle ich mich ratlos, ist es ein eleganter Weg, um unit-test, dass ein externer Prozess tatsächlich beginnt?

InformationsquelleAutor chakrit | 2008-12-08
Schreibe einen Kommentar