Модульное тестирование с VS 2008.

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

Юнит-тесты могут быть полезны как форма документации;каждый тестовый случай описывает поведение устройства.Это может упростить будущее развитие,интеграцию и даже дополнить или заменить официальную проектную документацию в test-driven development environment.

Блок тестовых сред

Модульные тесты, как правило, автоматизированы для использования тест-систем,которые могут автоматически запускать тесты на регулярной основе и выявлять ошибки.Для разработчиков доступны многочисленные испытания системы,включая коммерческие инструменты и open-source проекты.Многие базы являются потомками SUnit,Smalltalk систем модульного тестирования,которые были использованы в качестве основы для xUnit дизайна,который в свою очередь был на проектной основой для Java JUnit и .NET (среды тестирования).Visual Studio впервые включил систему модульного тестирования в Visual Studio 2005 Team Edition. Улучшенная версия этой версии toolset-теперь есть и в комплекте с Visual Studio 2008 Professional. Вы можете создавать пустые юнит-тесты,с помощью мастера, и позже добавить в них  свой код.

Примечание: вы не можете добавить в  юнит-тест неуправляемый код C++ с использованием встроенной базы Visual Studio 2008 .

Система модульного тестирования в Visual Studio

Что бы использовать Visual Studio для тестирования, вы должны сделать три вещи.Во-первых, создать тестовый проект.Это сохранит все модульные тесты для вашего решения.Далее, написать юнит-тесты для каждого из методов в ваших объектах.Наконец, запускать модульные тесты.

Создать тестовый проект

Чтобы создать тестовый проект:

  1. В Solution Explorer щелкните правой кнопкой мыши на решение и выберите Add>New Project.
  2. На левой стороне в разделе “Типы проектов:”,выберите ваш проект в языке Испытания типа проектов, и дайте ему имя.Нажмите кнопку OK.

Создание модульных тестов

Пробный проект состоит из нескольких отдельных unit-тестов. Модульный тест-это фрагмент кода, который работает против объекта в вашей программе предпринимая попытки использовать методы,с некоторыми предопределенными параметрами,затем вам нужно проверить,что объект возвращает ожидаемые результаты. Один общий подход-использовать то,что называется утверждения.Утверждения используются для обеспечения соблюдения этих определенных ожидаемых результатов которые вы делаете (или не происходит). Большинство Утверждений имеют  классы методов,которые являются сами по себе; они сравнивают значения и убеждаются,что условия утверждения выполняются (либо не выполняются). Например, следующий код в блоке теста – метод Add the calc объекта,убеждается, что реализация добавляет два параметра и возвращает результат:

Assert.Equals (4, calc.Add (1, 3));

Например, скажем,кто-то изменил ваш метод calc.Add который возвращает строку,вместо того,чтобы было целое число,или непреднамеренно изменили реализацию,чтобы умножить два параметра. Если возвращённое значение является строкой или 3,утверждение не удаётся.В следующий раз,когда проходит unit-тест,ему это не удастся, предупреждая вас,что ваш код (или само тестирование) больше правильно не функционирует.Это также означает, что тест определяет, как вы ожидаете, что бы ваша реализация себя вела.Ещё один разработчик, используя ваш объект в их коде,может ссылаться на ваши тесты,чтобы обозначить ваше поведение объекта.Ещё один полезный тест,чтобы определить, когда исключения должны быть выброшены. Для этого используйте атрибут [ExpectedException].Например, следующий код определяет, что исключения должны быть выброшены, когда происходит деление на ноль,а затем в нём делается попытка деления на ноль:

[ExpectedException(typeof(DivideByZeroException), 
"Should not allow division by 0.")] 
public void TestDivBad()
{ calc.Div(4, 0); }

Если тест не бросает исключение, или бросает исключение, которое не является DivideByZeroException, единица в тестовом случае терпит неудачу и возвращает строковое сообщение принимая во втором аргументе.

Для определения юнит-теста:

  1. Найдите имя нового проекта,а под ним,найдите раздел с папкой “Документы”.Щёлкните правой кнопкой мыши и выберите Добавить Ссылку… затем выберите Проекты. Найдите и добавьте в проект в который вы хотите Unit-Тест.Visual Studio автоматически генерирует файлы для данного устройства – тест проекта.
  2. В папке проекта,найдите файл,который содержит Поблочное в его имени.В верхней части этого файла добавьте следующую строку кода, замена YourProjectNameс реальным именем вашего проекта:
    с помощью YourProjectName;
  3. Ниже [TestClass], который генерируется автоматически, в аппарате Тестовый файл,там будет открыт Поблочный()метод. Этот метод позволяет сделать начальный конструктор логики, и создаёт объект типа класса,который мы будем тестировать.
    MyNewObject myNewObj = MyNewObject ();
  4. Найдите [TestMethod] в этом же файле; он был сгенерирован автоматически. Это там,где  будет код первого Блока Тестирования.Переименуйте TestMethod1до чего-то более значимого, с указанием, что тестирование будет делать. Например:
    [TestMethod]
    public void TestAdd ()
    {
    Assert.Equals (4, calc.Add (1, 3));
    Assert.AreNotEqual (5, calc.Add (3, 3));
    }
  5. Каждый метод в классе должен иметь свой собственный блок [TestMethod] ,который следуют из  public void Тестxyz(), где xyz должны представлять собой название метода испытания.

 Запуск Unit-тестов

Когда все unit-тесты были написаны, пришло время, чтобы их запустить.

Чтобы запустить модульные тесты:

  1. Выберите  в своем решении (или Ctrl + R, А из командной строки.) Тест->Run>Все Тесты .
    Эта команда будет выводить результаты Испытаний, с указанием результата, имени теста, и проект, под которым эта аппаратная часть теста запускалась.
  2. Если тест не проходит, дважды щёлкните на неудачных тестах. Это выводит сообщение об ошибке,в котором будет указано, Утверждение о том,что не удалось. Вернитесь назад и выясните, как исправить юнит-тестирование (или исходный код) и снова запустите, чтобы убедиться, что Блок-Тест проходит.

 Демо-версия проекта

Демо версия,простой калькулятор,программа доступна в виде отдельного файла.ZIP-архив содержит калькулятор проекта,плюс проект  CalcUnitTest .Нажмите кнопку здесь ,что бы скачать архив.

Файл UnitTest1.cs включает прокомментированный тестовый случай. Попробуйте некоторые из следующих упражнений, чтобы ознакомиться с модульным тестированием:

  • Закомментируйте код в разделе Program.cs так что бы не возникало исключение , когда идёт деление на ноль.
  • Запишите тест который не проходит,для запуска тестов и вернитесь назад и исправьте испытания.Например, это утверждение вызовет ошибку:
    Assert.Equals (7, calc.Add (1,3));
  • Добавьте новый метод к объекту calc .Например, добавьте метод по модулю.Тогда,юнит-тест, с утверждением,будет выглядеть как следующий:
    Assert.Equals (1, calc.Modulo (7,2));

Подписаться на уведомления об обновлениях по электронной почте




Смотрите также:

Оставить комментарий


three × 2 =

Календарь
July 2014
M T W T F S S
« May    
 123456
78910111213
14151617181920
21222324252627
28293031  
Статистика
Rambler's Top100 Яндекс.Метрика
Apple Cdma и GSM разница Facetime как пользоваться Gpedit msc Windows 7 Hard reset HTC one x Hspa что это Java для ipad Kmz в gpx Восстановление иконок Windows 7 Восстановление удаленных файлов Windows 7 Значки для папок Windows 7 Как активировать ipad 2? Как изменить значок ярлыка? Как изменить устройство воспроизведения звука? Как настроить ipad mini через itunes? Как отключить обновление Google chrome? Как пользоваться командной строкой? Как разблокировать Айфон 5? Как убрать блокировку экрана Windows 8? Контекстное меню Windows 7 Плюсы и минусы айфона 5 Рабочая группа Windows 7 Секретные коды для iphone Сканер wifi сетей для Windows 7 Скрытые файлы в Windows 8 Сортировка контактов в iphone Увеличить шрифт на iphone 4 видео Удаление приложений Windows 8 Удалить дубликаты файлов Юсб модем для андроид планшета