Assert.AreEqual失败错误C#

时间:2011-12-05 10:13:10

标签: c# visual-studio assert

我对这一切都很陌生,所以任何帮助都会受到赞赏。

我已经从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.");
}

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

我不会特别希望Image覆盖Equals - 有许多不同的方式可能需要平等。比较两个流(文件和Web版本)中的数据会更有意义。

答案 2 :(得分:1)

我认为Assert.Equal(Image, Image)不会比较两个图像的内容,而是会比较参考文献。您应该编写一个手动比较两个图像的方法

您可以将图像转换为位图,然后比较位图

查看Comparing Two Images in C#

答案 3 :(得分:0)

expectedactual是对不同对象的引用。

Assert.AreEqual只能将这两个图片作为参考进行比较,因为Image不会覆盖Equals - 无法检查图像是否具有相同的内容。你需要自己写一下。