簡體   English   中英

如何在C#單元測試中涵蓋圖像轉換?

[英]How to cover image conversion in a C# unit test?

我們已經編寫了一個庫,可以為各種文件格式生成縮略圖。 我喜歡對該庫進行單元測試。 它生成JPEG文件。

如何對圖像轉換進行單元測試? JPG使用有損格式時,如何檢查兩個圖像是否相似?

Microsoft TestTools有一個ImageCompare類,但是我不確定它是否適合我的個人資料。 有任何想法嗎?

首先,您的單元測試不會公開實際的實現。 您使用模擬。 目標應該是驗證方法是否已調用並且給定的模擬實現返回預期結果。


人們通常將單元測試與集成測試混在一起,並且通常在責任方面存在問題。 您所描述的似乎是一個集成測試。

一種方法是創建一個ImageDifference函數以獲得均值差: 在此處輸入圖片說明 在此處輸入圖片說明

圖像取自Wolfram Mathematica文檔。 有了正確的工具和預先知識,這是一個非常容易的問題(但通常不是)。

對於有損圖像,您會得到看起來像陰影圖像的東西。 但是,您無需計算圖像,只需描述差異的兩倍即可。 要測試它:

Assert.That(expected, Is.EqualTo(actual).Within(tolerance));

假設您的期望值為0.03,實際值為0.01638489638,公差為0.005。 這將測試圖像是否包含97%的質量圖像且誤差為0.5%。

我希望您發現這對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM