2011-01-12 5 views
3

私が単位テストを書くプロジェクトの一部は、jpegヘッダーからデータを抽出します。ユニットテスト - テストプロジェクトでリソースとしてイメージを使用する

この抽出をテストする単体テストを、既知の画像を使用して作成したいので、その画像の既知のプロパティをテストできます。

このサンプルイメージは、リソースとしてテストプロジェクトに保存されているとは論理的ですが、その方法はわかりません。 WPFプロジェクトの場合は、単にpack構文を使用します。

このようなもの(または、動作するもの)のベストプラクティスはありますか?

おかげで、 WTS

答えて

2

を参照しますか、 、おそらくより適切には、1つ)右方向。それは私には少し不快感を感じますが、うまくいきます。

まず、画像をContentリソースとしてコピーし、常にコピーします。正しい道に私を置くため

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

私はマシューズのソリューションが実際にはほんとうだと思うのですが、あなたのユニットテストは他のリソースではなくアセンブリのみに依存しています。 –

+0

私は同意しますが、この場合を除きイメージを交換する必要がありました。 –

5

あなたは、埋め込みリソースとしてテストプロジェクトに画像を含めることができます。
そして、あなたはそのイメージのストリームを取得するには、次のコードを使用することができます。詳細については

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

をこれは(私を指摘@Matthew Manelaのポストされた答えに基づいており、this link

+0

1:

はその後、(別のテストで使用される)は、次のヘルパー関数を使用します。私はストリームを望んでいませんでしたが、むしろ絶対的なファイルのパスが、私はあなたが示唆したように反射を使用しました。私の投稿された答えを見てください。 –

関連する問題