Практическое руководство. Создание модульного теста
Обновлен: Ноябрь 2007
Редактировать модульный тест следует в двух случаях: при создании теста вручную или при изменении только что созданного теста. Можно запускать только что созданные модульные тесты, но они создаются с содержимым по умолчанию; для получения значимых результатов нужно инициализировать эти тесты с нужными значениями. В автоматически созданных модульных тестах обычно нужно изменить присвоения переменных и один или несколько операторов Assert.
Использование операторов Assert в модульных тестах
По умолчанию каждый автоматически созданный модульный тест вызывает метод Inconclusive, из-за чего тест выдает сбой, поскольку основная часть теста еще не реализована. Нужно добавить в тест код, чтобы проверить правильность работы тестируемого метода. Для этого обычно нужно создать значение, а затем сравнить его с ожидаемым значением при помощи оператора Assert.AreEqual. Пример см. в разделе "Пример модульного теста" в Структура модульных тестов. Только что созданные модульные тесты содержат комментарии "To-do", означающие необходимость изменений.
Модульный тест, не содержащий оператора Assert, автоматически работает вплоть до истечения времени ожидания или до возникновения непредвиденного исключения. Дополнительные сведения см. в разделах Основные результаты теста и Использование классов Assert.
Открытие и написание модульных тестов
В этом разделе рассматриваются две процедуры:
В первой процедуре описывается изменение существующего теста. Это обычно делается для подготовки теста, созданного автоматически. См. раздел Практическое руководство. Создание модульного теста.
Во второй процедуре описывается создание теста вручную.
Чтобы изменить существующий модульный тест
В тестовом проекте в обозревателе решений найдите и откройте файл, содержащий модульный тест, затем найдите метод модульного теста, который нужно изменить.
либо
В окне Представление теста дважды щелкните модульный тест. При этом откроется файл, содержащий модульный тест; файл прокрутится до метода модульного теста.
Найдите в методе присвоения переменных.
В только что созданных текстах присвоения переменных помечены операторами "To-Do", которые напоминают о необходимости изменить присвоение. Например, ниже приведет пример типичного присвоения, которое нужно изменить:
string target.owner = null; // TODO: Initialize to an appropriate value
Присвойте каждой переменной соответствующее значение.
Чтобы узнать, какие нужно использовать значения, узнайте, с какими значениями эти переменные можно инициализировать перед вызовом метода; каким изменениям они могут подвернуться после вызова, и каковы ожидаемые результаты. Пример этого процесса см. в разделе Запуск и изменение модульного теста в руководстве Пошаговое руководство. Создание и запуск модульных тестов.
Найдите и измените в методе операторы Assert. При необходимости добавьте дополнительные операторы Assert.
Платформа Unit Testing Framework обеспечивает многочисленные дополнительные классы Assert и методы, обеспечивающие гибкость при написании операторов Assert. Дополнительные сведения см. в разделе Платформа Unit Testing Framework.
Чтобы создать модульный тест путем ввода
В обозревателе решений щелкните тестовый проект правой кнопкой мыши, укажите Добавить и выберите Создать тест.
либо
Щелкните правой кнопкой окно Представление теста и выберите Создать тест.
Будет открыто диалоговое окно Добавить новый тест.
В разделе Шаблоны щелкните Модульный тест, затем нажмите кнопку ОК.
В проект будет добавлен новый файл исходного кода с таким именем как UnitTest1.cs is на языке тестового проекта. Файл содержит несколько элементов, необходимых для модульных тестов.
Файл содержит ссылки на пространства имен Microsoft.VisualStudio.TestTools.UnitTesting и System.
Файл определяет свое собственное пространство имен, содержащее тестовый класс. Тестовые классы имеют атрибут [TestClass].
Файл содержит метод инициализации и метод очистки. Эти методы имеют атрибуты [TestInitialize()] и [TestCleanup()] соответственно.
Файл содержит один пустой тестовый метод с атрибутом [TestMethod]. Именно здесь нужно добавить логику теста. По умолчанию этот метод называется TestMethod1().
Этот файл также открывается в окне для изменения исходного кода. Новый (пустой) тестовый метод отображается в окне представления тестов и в редакторе списка тестов.
Добавьте тестовый код в тестовый метод.
Платформа Unit Testing Framework обеспечивает многочисленные дополнительные классы Assert и методы, обеспечивающие гибкость при написании операторов Assert. Дополнительные сведения см. в разделах Общие сведения о модульных тестах и Платформа Unit Testing Framework.
См. также
Основные понятия
Платформа Unit Testing Framework
Другие ресурсы
Практическое руководство. Создание модульного теста