3 Stimmen

Unit Testing - Bild als Ressource im Testprojekt verwenden

Ein Teil eines Projekts, für das ich Unit-Tests schreibe, extrahiert Daten aus einem Jpeg-Header.

Ich möchte einen Unit-Test erstellen, der diese Extraktion unter Verwendung eines bekannten Bildes testet (damit ich die bekannten Eigenschaften dieses Bildes testen kann).

Es erscheint mir logisch, dass dieses Beispielbild im Testprojekt als Ressource aufbewahrt werden sollte, aber ich bin mir nicht sicher, wie ich das anstellen soll. Wenn es ein WPF-Projekt war, würde ich einfach die Pack-Syntax verwenden.

Gibt es eine bewährte Praxis für so etwas (oder sogar etwas, das funktionieren würde)?

Danke! wTs

7voto

Matthew Manela Punkte 16422

Sie können das Bild als eingebettete Ressource in Ihr Testprojekt aufnehmen.
Dann können Sie den folgenden Code verwenden, um den Stream dieses Bildes abzurufen:

Assembly.GetExecutingAssembly().GetManifestResourceStream("TestProject.TestImages.myImage.png");

Für weitere Informationen siehe dieser Link

4voto

Wonko the Sane Punkte 10396

Dies basiert auf der von @Matthew Manela geposteten Antwort, die mich in die richtige (oder vielleicht besser: eine) Richtung wies. Es fühlt sich für mich ein bisschen plump an, aber es funktioniert.

Legen Sie zunächst das Bild als Inhaltsressource mit der Option Immer kopieren fest.

Verwenden Sie dann die folgende Hilfsfunktion (die von verschiedenen Tests verwendet wird):

private string GetValidFileName()
{
    FileInfo fileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location);
    return Path.Combine(fileInfo.DirectoryName, @"Resources\Sample.jpg");
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X