Модульные тесты используются при разработке программного обеспечения. Они могут быть созданы как после написания исходного кода, так и до этого, все зависит от ваших предпочтений и вероисповедания, либо предпочтений вашей компании. Разработка через тестирование(TDD) вызывает довольно спорное впечатление. Кто-то считает, что это довольно бесполезная вещь, однако склонен не согласиться. Бесполезным TDD назвать точно нельзя. Создание теста покрывающего предполагаемое изменение в программе, а затем написание кода который бы позволил пройти этот тест, заметно упрощает разработку. Модульные тесты так же используются для проверки уже созданного функционала. Однако достичь 100% покрытия кода программы модульными тестами практически невозможно.
План:
- Создание программы HelloWorld.
- Написание модульных тестов для HelloWorld.
- Написание исходного кода для прохождения модульных тестов.
Почему был выбран C#? Это довольно легкий в освоении язык программирования. В котором не нужно задумываться над выделением памяти и её очисткой. Широкий выбор различных библиотек .NET позволяет без особого труда реализовать сложные задачи. Помимо этого, программы скомпилированные в одной платформе с использованием CLR можно запустить на другой платформе, в которой присутствует реализация CLR.
Создание программы HelloWorld
- Запустите MonoDevelop и создайте новый проект HelloWorld.
- Создайте новый класс Goodbyer.
- Помимо конструктора без параметров, создайте конструктор со строкой, в качестве параметра. А так же метод, возвращающий строку и позволяющий задавать значение поля _who.
Создание модульных тестов
- Создайте новый проект библиотеки тестов NUnit в данном решении.
- Добавьте ссылку на проект HelloWorld.
- Создайте несколько модульных тестов для конструктора с параметрами и для метода задающего значение поля _who. Картинка 5
- На следующем изображении видно, что не все тесты были пройдены. Так как программа не выдает исключения, когда мы задаем поле _who пустым.
Изменение класса Goodbyer для прохождения модульных тестов
- Изменим класс Goodbyer так, чтобы он выдавал исключения, когда в поле _who записывается пустая строка.
- На вышестоящем изображении видно, что все тесты были пройдены.
На этом все. Если вы проделали все шаги, то вас можно поздравить с освоением простейших принципов модульного тестирования.
Ссылки
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/ — Туториал по модульному тестированию.
Автор: true_night