Использование классов Assert для модульного тестирования

Классы Assert пространства имен Microsoft.VisualStudio.TestTools.UnitTesting служат для проверки определенных функциональных возможностей. Метод модульного теста использует код метода в коде приложения, но сообщает о корректности поведения кода только в том случае, если включены операторы Assert.

Типы классов Assert

В пространстве имен Microsoft.VisualStudio.TestTools.UnitTesting имеется несколько типов классов Assert.

В методе теста можно вызывать любые методы класса Microsoft.VisualStudio.TestTools.UnitTesting.Assert, например Assert.AreEqual. Класс Assert содержит много методов для выбора, и многие из этих методов имеют несколько перегрузок.

Сравнение строк и коллекций

Класс CollectionAssert используется для сравнения коллекций объектов и проверки состояния коллекции.

Класс StringAssert используется для сравнения и проверки строк. Этот класс содержит ряд полезных методов, таких как StringAssert.Contains, StringAssert.Matches и StringAssert.StartsWith.

Исключения

Исключение AssertFailedException возникает в случае неудачного завершения теста. Причиной неудачного завершения теста может быть истечение времени ожидания, непредвиденное исключение или оператор Assert, создающий результат Сбой.

Исключение AssertInconclusiveException возникает при каждом тесте с неопределенным результатом. Как правило, оператор Assert.Inconclusive добавляется к тесту, над которым еще ведется работа, для обозначения его неготовности к выполнению.

Примечание.

В качестве альтернативы можно пометить тест, который еще не готов к выполнению, атрибутом IgnoreAttribute. Однако в этом случае будет невозможным легко создать отчет по числу тестов, которые еще не реализованы.

При написании нового класса исключения Assert наследование от базового класса UnitTestAssertException упрощает идентификацию исключения как ошибки подтверждения, а не непредвиденного исключения, выдаваемого тестом или рабочим кодом.

Чтобы проверить, действительно ли вызывается исключение, которое должно вызываться методом в коде приложения, используйте метод Assert.ThrowsException.

См. также