Проверьте свою конфигурацию. Перейдите к "Параметрам настройки системы">, "Клавиатура"
Затем переходит к "Ярлыкам"> "Снимки экрана"
Assert.Equals
тесты с использованием метода Equals
, который по умолчанию использует ссылочное равенство и, поскольку это разные объекты, они не равны. Вы захотите сравнить каждый байт в массиве и убедиться, что они равны. Один из способов сделать это - преобразовать их во что-то, что реализует ICollection, и вместо этого использовать CollectionAssert.AreEqual () .
The method Assert.AreEqual under the hood will end up defaulting to Object.Equals() for non-null values. The default implementation of Object.Equals() is referential equality. The 2 arrays are identical value wise but difference reference wise and hence will not be considered equal.
Поскольку массивы не переопределяют Equals
.
Вы не сказали, какой тестовый фреймворк вы используете, но в основном это зависит от этого фреймворка. специальные массивы. Конечно, вы всегда можете реализовать свой собственный вспомогательный метод. Иногда я так поступал. Для быстрого и грязного взлома, если вы используете .NET 3.5, вы можете использовать метод расширения Enumerable.SequenceEqual
:
Assert.IsTrue(actual.SequenceEqual(expected));
Пользовательский вспомогательный метод, конечно же, может дать вам более подробную информацию о том, чем они отличаются . Вы можете найти методы в MoreLINQ.TestExtensions
полезными, хотя они тоже довольно грубые и готовые.