2011-12-05 18 views
1

私はこのすべてにかなり新しいので、どんな助けにも感謝します。Assert.AreEqual failed Error 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は、ImageEqualsを上書きしないため、2つの画像を参照として比較することができます。画像に同じ内容が含まれていることを確認する機能はありません。あなた自身でこれを書く必要があります。

+0

感謝を速い返事のために、私はまだこれについて非常に新しいことを言ったように、どうすればこの仕事をするつもりですか? – user1081326

+0

@ user1081326 - それを行うためのテスト方法はありません。イメージをバイト単位で比較したり、ピクセル単位で比較する必要があります(ただし、最初に次元を比較すると最適な最適化が可能です)。 – Oded

+0

私のコメントを参照してください:) –

1

Imageは、Equalsを上書きするとは特に思っていません。同等の方法がたくさんあります。 2つのストリーム(ファイルとWebバージョン)のデータを比較する方が合理的です。

1

Assert.Equal(Image, Image)は、2つの画像の内容を比較するのではなく、参照を比較すると思います。あなたはComparing Two Images in C#