Новое в модульном тестировании - PullRequest
10 голосов
/ 24 февраля 2009

Я хотел бы знать, как реализовать модульное тестирование в существующем (довольно большом) приложении с использованием Visual Studio 2008 (.net 2.0).

Я понимаю, что разработка модульных тестов для существующего / унаследованного кода нереалистична, но я хотел бы, чтобы тесты для кода продвигались вперед.

Я нашел множество примеров о том, как писать тесты для кода, но ничего о том, как создать его с нуля для существующего проекта и как интегрировать его в цикл разработки.

Ответы [ 3 ]

6 голосов
/ 24 февраля 2009

Простой подход:

  • Выберите одну из платформ модульного тестирования (Nunit, MbUnit, Xunit, VS модульного каркаса тестирования, ...)
  • Добавить проект для модульных тестов в вашем решении (например, UnitTests).
  • Начните писать тесты.

Для упрощения организации создайте хотя бы одно пространство имен для каждого проекта в решении, например UnitTest.Project1, UnitTests.Project2, ... В зависимости от размера проектов добавьте больше уровней в пространство имен.

Таким образом, тестовый проект является частью решения. Если вы используете какой-либо инструмент непрерывной интеграции, то тесты могут автоматически выполняться для каждого коммита в хранилище исходного кода.

Edit:
Что касается комментария к проблеме MS Unit Test Framework с созданием модульных тестов, существует известная проблема: Мастер «Создать модульный тест» не работает . Похоже, что есть неподдерживаемые типы проектов, которые мешают мастеру модульного тестирования работать правильно. Я только что попробовал с одним решением, которое имеет один F # и несколько проектов C #. Я добавил проект модульного тестирования и попытался добавить тесты. У мастера тестирования были проблемы, пока я не выгружал проект F #. Тогда все работало нормально.

4 голосов
/ 24 февраля 2009

Один простой способ запустить тесты с существующим кодом - это создать политику написания теста при обнаружении ошибки.

* 1003 т.е. *

  • Найти ошибку
  • Написать тест, который повторяет ошибку
  • Fix
1 голос
/ 24 февраля 2009

Я настоятельно рекомендую прочитать эту книгу: Эффективная работа с устаревшим кодом , если вы хотите выполнить модульный тест для существующего кода. Это также хорошая книга о передовых практиках для юнит-тестов в целом.

Возможно выполнить модульное тестирование в существующих проектах, но вам придется внести некоторые изменения здесь и там, чтобы сделать код тестируемым. Слишком много зависимостей часто является проблемой.

РЕДАКТИРОВАТЬ (после вашего комментария) Если вы действительно хотите встроить модульное тестирование в свой цикл разработки, тогда вам следует использовать TDD ( Test Driven Development ). Цель здесь - сначала написать свои модульные тесты, чтобы у вас было хорошее понимание того, что будут делать ваши классы. Конечно, эти тесты не пройдут, но цель состоит в том, чтобы заставить их работать один за другим. Сделайте Google на TDD, там много информации.

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