Как начать с юнит-тестирования? - PullRequest
1 голос
/ 27 января 2011

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

Я знаю инструменты.Я знаю, как написать модульный тест.

Я написал некоторый код (пара классов), и я не знаю, с чего начать.Мне не хватает семантики.

Как выбрать то, что для модульного тестирования?

Должен ли я проводить модульное тестирование каждого дополнительного класса?

Должен ли я попытаться смоделировать все возможные изменения параметров метода?

Ответы [ 2 ]

2 голосов
/ 27 января 2011

Идея модульного тестирования заключается в тестировании фрагментов кода. Мы используем TDD в моей компании, которая работает create. Мы пишем тесты для каждого возможного варианта функции. Итак, чтобы ответить на ваши три вопроса;

  1. Как подобрать что тестировать?

    Бесполезно писать модульные тесты для кода или функций, которые не содержат интеллекта. Это действительно то, что должно произойти, когда вы строго следуете TDD. Но если очевидно, что возвращает функция, и вы уверены, что ничего не может пойти не так, то вам, вероятно, не нужно писать тест для нее. Хотя лучше это сделать.

  2. Должен ли я проводить модульное тестирование каждого дополнительного класса?

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

  3. Стоит ли пытаться смоделировать все возможные вариации параметров метода?

    Вы должны. Вот и вся идея написания модульного теста. Вы хотите проверить кусок кода, исключив каждую вещь, которая может пойти не так. Параметры являются наиболее важными здесь. Что произойдет, если строковый параметр содержит HTML, например? А что если обязательный параметр равен NULL? Или пустая строка. Каждый вариант должен быть проверен, чтобы исключить возможные вещи, которые могут пойти не так.

Если вы используете .net framework, очень интересно посмотреть на Moq framework. Короче говоря, это среда, позволяющая вам создать поддельный объект некоторого типа, и вы можете проверить свой тест на соответствие этому, чтобы проверить, соответствует ли результат ожидаемому, используя несколько различных параметров и возвращаемых значений. Вы можете прочитать об этом в блоге Скотта Хансельмана .

0 голосов
/ 27 января 2011

Стоит ли пытаться смоделировать каждое возможное изменение параметров метода?

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

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