3.1.1 Unit-тесты на C#

Unit тест – блок кода (обычно метод), который вызывает тестируемый блок кода и проверяет его правильность работы. Если результат юнит-теста не совпадает с ожидаемым результатом, тест считается не пройденным.

Модульное тестирование (Unit testing) – тестирование каждой атомарной функции приложения отдельно, с использованием объектов искусственно смоделированной среды.

Свойства хорошего Unit теста
  • Автоматизированным и повторяемым;
  • Простым в реализации;
  • После написания он должен остаться для последующего использования;
  • Кто угодно в команде должен иметь возможность запустить Unit тест;
  • Должен запускаться одним нажатием кнопки;
  • Должен выполнятся быстро.
Подход ААА
  • Arrange
  • Act
  • Assert
Атрибуты

TestClass – Тестирующий класс
TestMethod – Тестирующий метод

TestInitialize – Метод для инициализации. Вызывается перед каждым тестирующим методом.
TestCleanup – Метод для освобождения ресурсов. Вызывается после каждого тестирующего метода

ClassInitiazlie – Вызывается один раз для тестирующего класса, перед запуском тестирующего метода.
ClassCleanup – Вызывается один раз для тестирующего класса, после завершения работы тестирующих методов

AssemblyInitialize – вызывается перед тем как начнут работать тестирующие методы в сборке
AssemblyCleanup – вызывается после завершения работы тестирующих методов в сборке.

Assertion

Assert
• Сравнение двух входящих значений
• Много перегрузок для сравнения значений

CollectionAssert
• Сравнение двух коллекций
• Проверка элементов в коллекции

StringAssert
• Сравнение строк

Основные методы класса Assert

Assert.AreEqual() - проверка двух аргументов на равенство
Assert.AreSame() - проверяет, ссылаются ли переменные на одну и ту же область памяти.
Assert.InstanceOfType() - метод для проверки типов объектов.
Assert.IsTrue() - проверка истинности логической конструкции.
Assert.IsFalse() - проверка ложи логической конструкции

Источник:
Information Technology Video Developer Network http://itvdn.com ITVDN