Недавно я попытался использовать метод Assert.Equals () при написании нового теста NUnit. При выполнении этот метод выдает AssertionException
сообщение, что
Assert.Equals should not be used for Assertions.
на первый взгляд это немного сбивает с толку. Что тут происходит?
132
Ответы:
Assert
- это статический класс, унаследованный от System.Object, как и все классы в C # неявно. System.Object реализует следующий метод:Методы в Assert, которые предназначены для сравнения на равенство, являются
Assert.AreEqual()
методами. Поэтому вызовObject.Equals()
метода через класс Assert в модульном тесте, безусловно, является ошибкой. Чтобы предотвратить эту ошибку и избежать путаницы, разработчики NUnit намеренно скрылиObject.Equals
в классе Assert реализацию, которая генерирует исключение. Вот реализация:Конечно, само сообщение об исключении сбивает с толку, но, по крайней мере, позволяет узнать, что вы сделали что-то не так.
источник
tldr;
не:
источник