Schnelle Antwort ist: Es gibt jetzt die gegebenen Informationen gegeben.
Wenn jedoch das geöffnete Dateihandle oder ein verwandtes Flag/eine Variable geschützt ist, besteht eine Technik mit gtest darin, von Ihrer Klasse zu erben und die abgeleitete Klasse für den Zugriff auf diese Daten zu verwenden und sie zu testen.
Als eine Randnotiz sollten Konstruktoren keine Sachen machen: in Ihrem Beispiel, stellen Sie sich vor, dass das Dateisystem Ihnen aus irgendeinem Grund nicht erlaubt, die Datei zu öffnen. Wie wirkt sich das auf das Klassenverhalten aus? Du kannst nicht sagen. Daher haben Sie möglicherweise undefiniertes Verhalten von Ihrer Klasse und Sie haben keine Kontrolle darüber.
Noch schlimmer ist die Wurf Ausnahme Vorschlag aus dem gleichen Grund. Verwenden Sie die Abhängigkeitsinjektion in Ihrem Konstruktor oder machen Sie Ihre Klasse zu einer Vorlagenklasse, sodass Sie die injizierte Richtlinie steuern können.
Wenn Sie Ihren Konstruktor testen möchten, können Sie ihn im Fehlerfall hineinwerfen und testen, ob kein Wurf vorliegt. Sie könnten ein neues Design verwenden, um ein Argument als "Stream" oder eine andere Schnittstelle zu verwenden, damit Sie es sich vorstellen können und eine bessere Kontrolle haben, um Ihre Klasse zu testen. – Jarod42
Ich stimme dem vorherigen Kommentar zu. Verwenden Sie die Abhängigkeitsinjektion und injizieren Sie ein reales Objekt oder einen Mock, der die tatsächliche Dateiöffnung ausführt oder emuliert. –