2011-12-05 79 views
1

我對這一切都很新穎,所以任何幫助將不勝感激。Assert.AreEqual失敗錯誤C#

我從url方法創建了一個下載圖片,我需要測試它。 我已經試過填充的測試參數,但我不能確定什麼,我認爲會推杆。

你能告訴我什麼是打算去哪裏,

謝謝。 亞倫

[TestMethod()] 
public void DownloadImageFromURLTest() 
{ 
    string url = "http://www.omnimedicalsearch.com/conditions-diseases/images/skin-mole.jpg"; 
    Image expected = Image.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\skin-mole.jpg"); 
    Image actual = Image.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\skin-mole.jpg"); ; 
    actual = CloudConnection.DownloadImageFromURL(url); 
    Assert.AreEqual(expected, actual); 
    Assert.Inconclusive("Verify the correctness of this test method."); 
} 

回答

2

試試這個:

string url = "http://www.omnimedicalsearch.com/conditions-diseases/images/skin-mole.jpg"; 
    Image expected = Image.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\skin-mole.jpg"); 
    Image actual = Image.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\skin-mole.jpg"); ; 
    actual = CloudConnection.DownloadImageFromURL(url); 

    MemoryStream ms = new MemoryStream(); 
    expected.Save(ms, System.Drawing.Imaging.ImageFormat.Png); 
    String expectedBitmap = Convert.ToBase64String(ms.ToArray()); 
    ms.Position = 0; 
    actual.Save(ms, System.Drawing.Imaging.ImageFormat.Png); 
    String actualBitmap = Convert.ToBase64String(ms.ToArray()); 

    Assert.AreEqual(expectedBitmap, actualBitmap); 
+0

你先生是救命恩人! – user1081326

+0

:P謝謝:) –

0

expectedactual對不同對象的引用。

Assert.AreEqual只能比較兩張圖像作爲參考,因爲Image不會覆蓋Equals - 沒有設施可以檢查圖像是否具有相同的內容。你需要自己寫這個。

+0

謝謝對於快速回復,正如我所說,即時通訊對此仍然很陌生,我將如何着手開展這項工作? – user1081326

+0

@ user1081326 - 沒有測試方法可以爲您做到這一點。您需要逐字節比較圖像,或逐像素比較圖像(雖然首先比較尺寸可能是一個很好的優化)。 – Oded

+0

查看我的評論:) –

1

我不會特別期待Image覆蓋Equals - 有許多不同的方式可能會讓你想要平等。比較兩個數據流中的數據(文件和Web版本)會更有意義。

1

我不認爲Assert.Equal(Image, Image)會比較兩個圖像的內容,而不是比較參考。你應該寫的是手動比較兩個圖像

您可以將圖像轉換爲位圖,然後比較的位圖的方法

看看Comparing Two Images in C#

相關問題