Технология Клиент-Сервер 2004'3 |
|||||||
|
После чтения этой статьи вы увидите, что мы уделяем много внимания тестированию. Мы пишем большинство наших тестов до написания рабочего кода, один тест за раз. Маленький тест, за ним немного кода и так далее. Мы работаем в таком режиме по нескольким причинам, они будут видны в процессе чтения:
Но я здесь не для продажи тестирования, а для разъяснения того, как мы это делаем. Идём дальше.
Поскольку мы работаем с XML Notepad, нам приходится работать с текстовыми строками и разбираться, содержат ли они в себе XML-теги. XML-теги, как вы, вероятно, знаете, состоят из совпадающих пар строк, заключённых в тильдах: <SomeTag> что-то типа того</SomeTag>. В .NET есть мощные средства работы с XML, и далее будет показано применение некоторых из них. Но мы здесь собрались для изучения C#, что подразумевает несколько более глубокое погружение этот вопрос. А учитывая, что C# включает мощную поддержку регулярных выражений, я решил заняться еще и этим.
Часто, когда я экспериментирую с чем-то новым, я просто пишу некоторый набросок кода. Он печатает результаты на консоль. Что-то подсказывает мне поступить так же и в этот раз, при создании тестов с помощью NUnit, среды тестирования для .NET. В результате , как вы увидите, есть c информация вместо чего-то, присутствующего только в моей голове, что, скорее всего, будет забыто. Это ещё и позволит для обучения других, позволяющий делать работу немного легче.
В этой статье описывается тестирование с помощью NUnit. Эта среда тестирования написана Джимом Ньюкирком, Михаэлем Ту, Алексеем Воронцовым и Чарли Пуле на основе оригинального NUnit Филипа Крейга. Вы можете найти всё это на сайте sourceforge.net. NUnit – почти то же самое, что и все среды тестирования в экстремальном программировании (xUnits). Но есть два важных отличия.
Когда вы пишете тесты с использованием NUnit, можно запустить его пользовательское приложение. После запуска оно выдаст отчёт о ваших тестах. Существует две версии приложения: консольная и GUI-версия. Я предпочитаю GUI-версию и буду использовать её на протяжении всей статьи. Когда я говорю NUnit, то обычно подразумеваю версию с пользовательским интерфейсом (рисунок 1).
После нажатия кнопки Запуск (Run), NUnit просмотрит программу на предмет наличия тестов и запустит их. У каждого тест-набора, определенного в вашей программе, есть установочный и завершающий метод. Поэтому каждый тестовый случай запускается с начальной предустановкой. Это означает, что ваши тесты автоматически независимы, и что NUnit запустит их все. Если тесты выполняются правильно, NUnit высветит зелёным. Если какой-либо тест не пройдёт, цвет сменится на красный.
Команды, использующие Экстремальное программирование, пишут множество тестов. Правило гласит, что кода может быть отправлен в общее хранилище только когда все тесты выполнятся правильно. Это может показаться тяжёлой ношей, но на деле это не так. А теперь представьте, насколько уверенными вы будете в своём коде, когда множество ваших тестов выполнится успешно!
Ну, достаточно голословных высказываний. Давайте посмотрим, как это всё выглядит.
Почти весь код в этой статье разрабатывался с использованием соответствующих тестов под NUnit. Надеюсь, что вы увидите, как, работая таким путём, можно минимизировать проблемы и поддерживать код в работоспособном и доступном для усовершенствования состоянии. Если однажды нам придётся работать без тестов (возможно потому, что мы не сможем представить, как написать тест или из-за лени), я уверен, что это приведет к ошибкам в коде.
Это обучающая статья, так что если вы заметили ошибки, то это потому, что мы позволили их увидеть. Оцените, насколько наши ошибки были минимизированы в процессе написания тестов или улучшения их. Моя неоспоримая правота здесь в том, что вы увидели, насколько эффективен подход тестирования до разработки. Это не единственное, что мы изучили, хоть и является основной идеей.
Включение NUnit в процесс разработки под .NET – это очень просто. Создание первого теста должно занять у вас не больше часа. И я надеюсь, что попробовав такой способ работы, вы его уже не бросите.
Copyright © 1999-2002, Ronald E Jeffries,
Copyright © 1994-2016 ООО "К-Пресс"