Ошибка Assert.AreEqual Ошибка C # - PullRequest
1 голос
/ 05 декабря 2011

Я довольно новичок во всем этом, поэтому любая помощь будет оценена.

Я создал изображение для загрузки из метода 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 ]

2 голосов
/ 05 декабря 2011

Попробуйте это:

  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 голос
/ 05 декабря 2011

Я бы особо не ожидал, что Image переопределит Equals - есть множество разных способов, которыми вы можете захотеть равенства.Было бы разумнее сравнивать данные в двух потоках (файл и веб-версия).

1 голос
/ 05 декабря 2011

Я не думаю, что Assert.Equal(Image, Image) будет сравнивать содержимое двух изображений, а будет сравнивать ссылки. Вы должны написать метод, который вручную сравнивает два изображения

Вы можете преобразовать изображения в растровое изображение, а затем сравнить растровые изображения

Взгляните на Сравнение двух изображений в C #

0 голосов
/ 05 декабря 2011

expected и actual являются ссылками на разные объекты.

Assert.AreEqual сможет сравнивать только два изображения в качестве ссылок, поскольку Image не переопределяет Equals - тамнет возможности проверить, что изображения имеют идентичный контент.Вам нужно будет написать это самостоятельно.

...