Страницы

пятница, 12 апреля 2013 г.

NUnit начало

После очередного обновления Visual Studio 2012 отвалилась связка ReSharper и MsTest. Поэтому быстро перешел на использование NUnit, в качестве движка для реализации UnitTest.
Далее краткие заметки, по использованию NUnit.


Установка NUnit
С установкой все просто и понятно
  1. Загрузить дистрибутив с сайта производителя и установить.
  2. Подключить на уровне Visual Studio solution через NuGet PacketManager (наиболее удобный способ)
Запуск тестов
Для запуска UnitTest-ов существует несколько возможностей
  1. Консольное приложение
  2. Windows GUI приложение
  3. Запуск из Visual Studio. Для запуска тестов из Visual studio необходимо установить расширения. ReSharper или например NUnit Test Adapter.
Использование
Рассмотрим простейший случай использования NUnit, а именно связку:
  • Visual Studio 2012
  • NuGet Packet Manager
  • Тестируемый функционал и UnitTest-ы находятся в одном solution.
В данном посте не рассматриваем TDD, поэтому тесты создаем для уже реализованной функциональности.
И так, создаем проект типа Class Library, в котором создаем класс SumService реализующий один метод int Sum(int,int) и свойство AllOperationsSum - представляющее сумму всех операций Sum
Далее, добавляем в solution новый проект SumService.Tests (тип проекта Class Library), который будет содержать UnitTest-ы. Удаляем Class1 созданный по умолчанию и добавляем новый класс SumServiceTests.
Структура solution
Подключаем к проекту SumService.Tests NUnit используя NuGet Packet Manager
Вызов NuGet Packet Manager через меню
Указание проекта, к которому подключаем NUnit
Подключаем к проекту SumService.Tests тестируемый проект SumService

Создаем наш первый тест, проверяющий правильность работы метода Sum(1,1)
Ключевые моменты:

  • Строка 5 - Атрибут [TestFixture] сообщает NUnit, что класс содержит набор UnitTest-ов
  • Строка 8 - Атрибут [Test] сообщает NUnit, что данный метод класса является тестом
  • Строка 15 - Реализует проверку утверждения, для определения правильной работы тестируемого функционала

Запускаем тест на выполнение TEST\Run\All Tests (Ctrl+R,A), либо через Test Explorer
В окне Test Explorer видим результаты выполнения

Добавим еще один тест, для проверки правильности работы (в данный момент в тесте присутствует ошибка, и тест не должен пройти)
После запуска тестов, в Test Explorer видим, что созданный нами тест не прошел, и в нижней части окна видим причину ошибки.

Исправляем тест и запускаем тесты еще раз, и видим, что теперь у нас все хорошо
Напоследок добавим еще один тест для свойства AllOperationsSum

Результаты запуска тестов

Более подробно о доступных атрибутах и утверждениях в следующих постах.

Комментариев нет :

Отправить комментарий