2011-01-12 60 views
3

我正在撰寫單元測試的項目的一部分,用於從jpeg頭中提取數據。單元測試 - 在測試項目中使用圖像作爲資源

我想創建一個單元測試,測試這個提取,使用已知的圖像(所以我可以測試該圖像的已知屬性)。

對我來說,這個示例圖像作爲資源保存在測試項目中似乎很符合邏輯,但我不知道如何去做。如果這是一個WPF項目,我只需使用包語法。

對於像這樣的東西(或者甚至是可行的東西)有沒有最佳實踐?

感謝, WTS

回答

2

這是基於@Matthew Manela公司發佈的答案,它指出我的(或或許更合適一個)正確的方向。它對我來說感覺有點奇怪,但它有效。

首先,將圖像設置爲內容資源,並始終複製。

然後,使用下面的輔助函數(由不同的測試中使用):

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

我認爲馬修斯的解決方案實際上是整潔的,因爲這意味着您的單元測試*僅取決於程序集,而不是其他資源 – 2011-01-17 22:05:54

5

您可以在您的測試項目作爲嵌入資源的圖像。
然後你可以使用下面的代碼來獲取圖像的流:

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

欲瞭解更多信息,請參閱this link

+0

+1把我在正確的道路上。我不想要流,而是一個絕對的文件路徑,但我確實使用了反射。看到我發佈的答案。 – 2011-01-12 21:36:47

相關問題