Pull to refresh

Введение в модульное тестирование для c# проектов в среде MonoDevelop

Reading time2 min
Views41K
Модульные тесты используются при разработке программного обеспечения. Они могут быть созданы как после написания исходного кода, так и до этого, все зависит от ваших предпочтений и вероисповедания, либо предпочтений вашей компании. Разработка через тестирование(TDD) вызывает довольно спорное впечатление. Кто-то считает, что это довольно бесполезная вещь, однако склонен не согласиться. Бесполезным TDD назвать точно нельзя. Создание теста покрывающего предполагаемое изменение в программе, а затем написание кода который бы позволил пройти этот тест, заметно упрощает разработку. Модульные тесты так же используются для проверки уже созданного функционала. Однако достичь 100% покрытия кода программы модульными тестами практически невозможно.

План:
  1. Создание программы HelloWorld.
  2. Написание модульных тестов для HelloWorld.
  3. Написание исходного кода для прохождения модульных тестов.


Почему был выбран C#? Это довольно легкий в освоении язык программирования. В котором не нужно задумываться над выделением памяти и её очисткой. Широкий выбор различных библиотек .NET позволяет без особого труда реализовать сложные задачи. Помимо этого, программы скомпилированные в одной платформе с использованием CLR можно запустить на другой платформе, в которой присутствует реализация CLR.

Создание программы HelloWorld


  1. Запустите MonoDevelop и создайте новый проект HelloWorld.
  2. Создайте новый класс Goodbyer.
  3. Помимо конструктора без параметров, создайте конструктор со строкой, в качестве параметра. А так же метод, возвращающий строку и позволяющий задавать значение поля _who.

Создание модульных тестов


  1. Создайте новый проект библиотеки тестов NUnit в данном решении.
  2. Добавьте ссылку на проект HelloWorld.
  3. Создайте несколько модульных тестов для конструктора с параметрами и для метода задающего значение поля _who. Картинка 5
  4. На следующем изображении видно, что не все тесты были пройдены. Так как программа не выдает исключения, когда мы задаем поле _who пустым.

Изменение класса Goodbyer для прохождения модульных тестов


  1. Изменим класс Goodbyer так, чтобы он выдавал исключения, когда в поле _who записывается пустая строка.
  2. На вышестоящем изображении видно, что все тесты были пройдены.


На этом все. Если вы проделали все шаги, то вас можно поздравить с освоением простейших принципов модульного тестирования.

Ссылки


Using NUnit with MonoDevelop: www.dijksterhuis.org/using-nunit-with-monodevelop — Туториал по созданию модульных тестов в NUnit c MonoDevelop.

C# Unit Test Tutorial: www.rhyous.com/programming-development/csharp-unit-test-tutorial — Туториал по модульному тестированию.
Tags:
Hubs:
+15
Comments10

Articles

Change theme settings