Какой модульный тестовый фреймворк и как начать (для asp.net mvc) - PullRequest
11 голосов
/ 25 декабря 2008

Я никогда раньше не проходил модульное тестирование, но теперь я готов попробовать.

Какая основа лучше всего подходит для начинающих? Плюсы и минусы

Что я должен прочитать, прежде чем начать кодирование? Книги / Статьи / Код / Блоги

есть ли "примеры проектов" с открытым исходным кодом?

Я использую asp.net mvc / C #.

Ответы [ 8 ]

7 голосов
/ 26 декабря 2008

Если вы интегрировали модульное тестирование в Visual Studio (я думаю, что это часть Professional и лучше), начните с этого, потому что он интегрирован. Недостатком является то, что, насколько мне известно, за пределами Visual Studio или Team Foundation Server не существует тестера, который бы дисквалифицировал его для автоматического тестирования, но я не уверен, насколько актуальна эта информация.

Другие альтернативы: xUnit.net , NUnit и mbUnit . Я не могу говорить о плюсах и минусах из-за недостатка опыта, но сейчас я пользуюсь xUnit.net, потому что: а) я знаю, что существует работающий шаблон ASP.net MVC начиная с версии 1.1, и сексуальна. Я использую бесплатную персональную версию TestDriven.net в качестве моего Runner Runner в Visual Studio.

Для xUnit есть руководство "Как начать работу": http://www.codeplex.com/xunit/Wiki/View.aspx?title=HowToUse

Опять же, я не могу их реально сравнить из-за отсутствия опыта работы с NUnit и mbUnit, но я считаю, что все три достаточно стабильны и пригодны для использования.

3 голосов
/ 27 декабря 2008

Я рекомендую вам взглянуть на Gallio Automation Platform для .NET , поскольку она предоставляет нейтральный (и БЕСПЛАТНЫЙ) инструмент, который может реализовать для вас несколько платформ модульного тестирования в рамках одного инструмента с графическим интерфейсом. Он создан ребятами из mbUnit.

Мой главный профессионал в любой инфраструктуре модульного тестирования - это то, что она дает вам чувство уверенности в вашем коде, и практика TDD становится очень естественной вещью.

Основным недостатком является то, что веб-формы ASP.NET (что я склонен кодировать) нелегко тестировать, поэтому ASP.NET MVC так привлекателен для людей. Другим недостатком является то, что вам нужно углубиться в это, понимая, что вам нужно будет реорганизовать тесты столько, сколько они выполняют в коде, если не больше.

3 голосов
/ 26 декабря 2008

Роб Конери создал серию видео , показывающую, как создать приложение электронной коммерции с использованием MVC. Он использует полный подход, основанный на тестировании (используя встроенную тестовую среду в Visual Studio 2008)

3 голосов
/ 26 декабря 2008

Я использую один запеченный в Visual Studio с добавлением TestDriven.Net для пунктов меню, вызываемых правой кнопкой мыши, которые позволяют мне запускать одиночные тесты с / без отладчика. Я начал использовать NUnit. Либо один, вероятно, в порядке. Я предпочитаю использовать тот, что в VS, в первую очередь, поэтому мне не нужно поддерживать оба инструмента, но у интеграции есть некоторые преимущества, особенно если вы используете Team System.

Я считаю, что TestDriven.Net поддерживает множество различных фреймворков. Вы также захотите использовать анализатор покрытия, чтобы помочь вам увидеть, какие части вашего кода были покрыты тестами, и помочь вам определить другие тесты, которые могут понадобиться. Возможно, вам понадобится система Team для анализа покрытия для VS, но всегда есть NCover (поставляется с TestDriven.Net).

Я бы посоветовал взглянуть на Прагматическое модульное тестирование в C # от Прагматических программистов или Разработка через тестирование с использованием C # . Оба будут иметь примеры.

Пример Роба Конери StoreFront является хорошим примером ASP.NET MVC.

2 голосов
/ 26 декабря 2008

Единственное, что я хотел бы добавить, это a) дать им всем попробовать и посмотреть, что вам нравится [это дерьмовый ответ, но у каждого есть свои симпатии и антипатии, так что «пробуйте» это 'карта разыгрывается много раз * и с какими точками трения вы сталкиваетесь и b) проверьте хорошее сравнение базовых тестовых структур на сайте XUnit CodePlex. *

1 голос
/ 25 июля 2010

Я не пытаюсь вас запутать, если вы разработчик и хотите протестировать проекты ASP.NET MVC, а затем использовать XUnit, это хорошо и разработано сотрудником Microsoft. Он имеет консоли и графические интерфейсы, которые помогают в автоматическом тестировании. XUnit теперь используется большинством разработчиков.

0 голосов
/ 28 апреля 2009

Я использую Selenium RC и Moq . До сих пор я не сталкивался со слишком многими областями, для которых я не смог протестировать и получить хорошее покрытие.

Взгляните на образец кода Selenium RC . Это довольно просто и легко следовать ...

0 голосов
/ 26 декабря 2008

Давайте начнем с некоторых основ об этом, хорошо? Модульное тестирование относится к тестированию наименьшего возможного фрагмента кода, обычно функции / процедуры / метода в коде. Я бы посоветовал взглянуть на «Рефакторинг» Мартина Фаулера как на хорошую книгу о том, как юнит-тесты играют роль в рефакторинге.

В зависимости от того, как вы настроили свой код, вы, возможно, захотите взглянуть на фреймворки, такие как RhinoMocks, NMocks, .Net MockObjects, например, чтобы вы могли настроить тестовые устройства для обработки условий предварительного выполнения, которые могут потребовать вызов , Вероятно, существует более чем несколько примеров модульного тестирования на фиктивных объектах, и в руководствах по asp.net-mvc должен быть один или два примера тестирования.

Не забывайте, что asp.net-mvc все еще находится в бета-версии и, скорее всего, изменится, когда с ним разберутся различные изломы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...