Существует две причины, по которым этот тест не пройден:
Первый элемент (элемент 0) каждого списка представляет собой массив из трех элементов.На самом деле они не совпадают - вторыми элементами первого элемента являются 54 23 и 54 32 .Даже если вы это исправите, произойдет сбой, потому что ...
Во-вторых, вам нужно указать .NET выполнить структурное сравнение элементов списка, этопо умолчанию выполняется сравнение ссылок на объекты, т. е. равенство ссылок для каждого массива int [].
Измените вашу коллекцию следующим образом:
CollectionAssert.AreEqual(
expected, actual,
System.Collections.StructuralComparisons.StructuralComparer,
"\nExpect: " + ... // omitted for brevity
);
и тест пройдёт.
Если вы просто сравните массивы, структура теста сделает частичное сравнение, поэтому этот тест, например, пройдет:
[TestMethod]
public void WillCompareByElement()
{
var x = new[] { 3, 2 };
var y = new[] { 3, 2 };
CollectionAssert.AreEqual(x, y);
}
Вы можете получить более четкие сообщения об ошибках теста, повторяющиеся по каждому элементу списка и сравниваемые таким образом.
Кроме того, вы можете рассмотреть возможность использования приличной библиотеки утверждений, такой как mustly.Затем вы можете написать:
expected.ShouldBe(actual);
и получить вывод, например:
Message: Test method SOTestEquals.UnitTest1.SecondRow threw exception:
Shouldly.ShouldAssertException: [[5324, 5423, 2345]]
should be
[[5324, 5432, 2345]]
but was not
difference
[*[5324, 5423, 2345]*]
Сохраняя записываемый вами вывод.