Это отрывок из электронной книги «Единичное тестирование » Марка Клифтона, любезно предоставленный Syncfusion.
NUnit
Изначально NUnit был перенесен из JUnit в качестве механизма модульных тестов с открытым исходным кодом, предоставляющего богатый набор атрибутов тестовых устройств, методов и переменных, а также проверочных утверждений. Документацию по всем версиям NUnit можно найти здесь . NUnit все еще поддерживается. Последний стабильный выпуск на момент написания этой статьи — версия 2.6.2, выпущенная 22 октября 2012 года.
CSUnit
CSUnit — это лёгкий модуль для тестирования юнитов. Обратите внимание, что он, похоже, не поддерживается, поскольку последний выпуск был в марте 2009 года. Он предлагает минимальный, но функциональный набор атрибутов, которые можно использовать для определения тестовых приборов и методов тестирования.
Visual Studio Тестовый проект
Visual Studio предоставляет возможность создавать тестовые проекты непосредственно в IDE. Одна из проблем, обнаруженных автором, заключается в том, что пользовательский интерфейс изменился между VS 2008 и VS 2012:
Интерфейс Visual Studio 2008 Результаты теста
В VS2008 тестовый прогон выполняется очень быстро и отображает легко читаемый список результатов теста, а для неудачных тестов — сообщение об ошибке, содержащее информацию о том, почему тест не прошел.
Кроме того, когда тестовый проект является активным проектом, выполнение тестов (или их отладка) выполняется так же, как и в любом другом приложении — их можно запустить с помощью Ctrl + F5 (запуск) или F5 (отладка).
Интерфейс результатов теста Visual Studio 2012
В VS2012 тестователю требуется несколько секунд для инициализации. Хуже того, сообщения, связанные с результатом теста, получаются нажатием на ошибку. Требование к дополнительному клику — это серьезная проблема с удобством использования. Из-за изменений в отображении сбоев Visual Studio 2008 использовался для снимков экрана в этой книге.
Наконец, бегущий тест больше не запускается с помощью тех же клавиш быстрого доступа, что и обычное приложение. Вместо этого разработчик должен использовать Ctrl + R, A для запуска тестов. Для отладки юнит-тестов нет сочетания клавиш.
Visual Studio и интеграция с NUnit
Microsoft предоставляет инструменты интеграции для NUnit для Visual Studio 2010 ( http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099 ) и 2012 ( http://visualstudiogallery.msdn.microsoft.com/6ab922d0 -21c0-4f06-ab5f-4ecd1fe7175d ), хотя на момент написания этой статьи тестовый адаптер NUnit для Visual Studio 2012 был бета-версией 3-2.
Другие инструменты модульного тестирования
Есть несколько других тестовых движков, которые стоит упомянуть здесь.
MSTest
MSTest ( http://msdn.microsoft.com/en-us/library/ms182489 — версия командной строки для тестового теста Microsoft).
MbUnit / Gallio
MbUnit и Gallio тесно связаны. Gallio — это платформа автоматизации тестирования, позволяющая интегрировать различные тестовые среды и инструменты отчетности. Это сложный инструмент, который стоит изучить, когда вы ознакомитесь с принципами модульного тестирования и другими движками.
Microsoft Test Manager
Microsoft Test Manager — это инструмент для планирования, управления и выполнения тестов вручную или автоматически. Microsoft Test Manager интегрируется с отслеживанием ошибок, позволяет писать заметки, связанные с вашими тестами, и позволяет настраивать виртуальные лабораторные машины, которые могут быть сброшены в известное состояние до запуска тестов.
FsUnit
FsUnit — это тестовый движок, который облегчает работу с языком F #.
Интеграционные рамки тестирования
Модульное тестирование предназначено для проверки правильности единиц вычислительного кода. Интеграционное тестирование предназначено для проверки поведения пользовательского интерфейса.
NBehave
Для читателей, знакомых с Ruby, NBehave является ранним прототипом функций, похожих на Cucumber, в котором пишутся поведенческие тесты. Например, тесты написаны на естественном языке (оба эти примера взяты с веб-сайта GitHub NBehave ):
1
2
3
4
|
Scenario: Login
Given I am not logged in
When I log in as Morgan with a password SecretPassw0rd
Then I should see a message, «Welcome, Morgan!»
|
и методы реализуют фразы (которые, конечно, могут быть использованы повторно):
1
2
3
4
5
|
[Given(«I am not logged in»)]
public void LogOut()
{
.
}
|
Имейте в виду, что это не модульное тестирование, скорее оно облегчает парадигму, называемую поведенчески-ориентированной разработкой, и упоминается здесь для иллюстрации других форм тестирования, дополняющих модульное тестирование.