|
Модераторы: Partizan, gambit |
|
Exception |
|
||||||||||||
Эксперт Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Test-Driven Development в .NET
Значит, после долгих запарок с созданием консольных приложений для тестирования своих Class Library, я признал, что надо перебираться на что-то более удобное в работе. Выбрал я весьма распространённый среди дотнетчиков фреймворк – конечно же, NUnit. Спешу поделиться впечатлениями ;) Где взять? Вот он тут лежит. Пишем класс После закачки сетупа с вышеупомянутого сайта, я перезапустил студию и создал два новых проекта Class Library – один для VB, другой для C#. Собственно, для добавления в проект поддержки NUnit необходимо (как нетрудно догадаться) добавить в проект референс на NUnit.Framework.dll. У меня эта библиотека лежала в Program Files\TestDriven.NET 2.0\NUnit. Также я добавил в проект глобальный импорт на пространство имён NUnit.Framework. Дальше я написал очень даже простенький класс, метод которого возвращает мне всякую фигню:
Пишем тест-кейс Несколько слов об устройстве NUnit. Сначала библиотека NUnit была полностью портирована с Java (JUnit), но затем была полностью переписана на C#. Благодаря этому переходу стало возможным использование атрибутов и рефлексии, что сделало возможной удобную поддержку NUnit’а средой Visual Studio. В системе NUnit определены два главных атрибута:
Для начала я написал класс-тест:
В этом классе используется один из многочисленных методов класса Assert из NUnit.Framework. Хе, для начала, разумеется, я решил сделать так, чтобы тест не прошёл . Для этого я придал константе _expectedStuff значение "Some other stuff". Итак, щёлкаем правой кнопкой по названию класса-теста (SomeStuffTest) и выбираем пункт Run Test(s): // у меня почему-то не установились иконки, там такая ракета должна быть У меня пошла компиляция и окошко Output вдруг высветило:
Круто Но я пока эту «ошибку» не исправлял, а изучал другие доступные опции. Например, мы можем запустить тест не через NUnit, а используя дебуггер или некий NCoverage, который у меня почему-то не работает. Вариант с дебуггером более банален: при обнаружении ошибки просто в Output пишеццо исключение, а в таск-листе появляется соответствующий error: Ну и, конечно же, я не мог удержаться от того, чтобы исправить ошибку и лицезреть такую лепоту:
Пока что это всё Сей текст также прикреплён в вордовском виде снизу Это сообщение отредактировал(а) Exception - 17.4.2006, 18:45 Присоединённый файл ( Кол-во скачиваний: 45 ) Test.doc 66,50 Kb |
||||||||||||
|
|||||||||||||
-ser- |
|
|||
Опытный Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
Exception, извини конечно, ты откуда свалился?
в NUnite примеров и документации уж больше и не придумаешь.
ракета появляется, если установить TestDriven.NET, но это не cовсем NUnit. Это Add-In, который интегрируется прямо в студию и имеет интерфейс похожий с NUnit, возможно даже использует модули из него. Вроде бы и удобно, но я знаю тестеры работают почему-то с NUnit, который тестирует только скомпилированный файл. может из-за того что он более оперативно апгрейдится, может просто привыкли, да и нареканий в общем-то нет. -------------------- "Тонкая, однако, работа." |
|||
|
||||
Exception |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Дык, я не на что не претендую . Просто многим лень читать доку .
А работал я именно со связкой TestDriven.NET + NUnit. Имхо, это гораздо удобнее, чем просто NUnit. |
|||
|
||||
z3nd3r |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
если знаешь то можешь подкинуть пару ссылок на документацию и примеры ? желательно на русском языке. заранее спасибо |
|||
|
||||
z3nd3r |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
up!
|
|||
|
||||
JleLLla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 6.4.2008 Репутация: нет Всего: нет |
А на с++ примеры можете показать?? очень надо
|
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |