Практическое руководство. Создание модульного теста, управляемого данными
Вы можете создать модульный тест, так что вместо ввода значений в методе теста можно извлекать значения из источника данных. Модульный тест последовательно выполняется для каждой строки в источнике данных. Это облегчает тестирование разнообразных входных данных в ходе одного тестового запуска.
Настройка модульного теста для извлечения значений из источника данных включает два этапа. Сначала необходимо создать соединение между методом модульного теста и источником данных с использованием свойств модульного теста. Второй этап - присвоить переменные метода, так чтобы извлекать их значения из соответствующего столбца источника данных. Это выполняется с применением логики самого метода теста.
Пример модульного теста, управляемого данными
На следующем рисунке отображены два модульных теста: один складывает два числа, а второй объединяет имя с фамилией. Эти модульные тесты настроены на извлечение значений для тестов из базы данных.
Модульные тесты, управляемые данными
Данная строка содержит атрибут DataSource и строку подключения. Точные сведения в строке подключения отличаются, в зависимости от используемого типа источника данных. В этом примере используется база данных Access.
Когда значения поступают из таблицы базы данных, их необходимо преобразовать в соответствующий тип. В этом примере в первом модульном тесте значения из базы данных преобразовывались в строки, во втором - в целые числа.
Свойство TestContext.DataRow указывает модульному тесту, из какой строки необходимо извлекать данные. В этом случае данные извлекаются, начиная с первой строки, а затем последовательно до последней строки в таблице. Дополнительные сведения об этом свойстве см. в разделе TestContext.
Имя столбца указывает модульному тесту, из какого столбца необходимо извлекать данные.
Можно просмотреть подробные результаты для каждой строки данных, использованной в тесте: для этого нужно дважды щелкнуть тест в окне Результаты теста.
Подробные результаты модульного теста, управляемого данными
Создание соединения между модульным тестом и источником данных
Это первый этап настройки модульного теста для использования источника данных. На этом этапе вы создаете соединение между методом модульного теста и источником данных.
Данная процедура показывает, как нужно использовать свойства модульного теста для создания соединения. Однако также можно создать соединение, создав файл app.config и добавив к нему сведения о соединении. Преимущества использования файла app.config заключаются в том, что можно изменить расположение базы данных, и при этом не нужно будет вносить изменения в сам модульный тест. Дополнительные сведения о создании и использовании файла app.config см. в разделе Пошаговое руководство. Использование файла конфигурации для определения источника данных.
Примечание
Если вы знакомы со строками подключения к данным, можно ввести строку подключения к данным после первой квадратной скобки элемента [TestMethod()], вместо того чтобы использовать окно свойств.
[DataSource(вставьте сюда строку подключения к данным), TestMethod()]
Подключение модульного теста к источнику данных
Откройте решение с методом теста, для которого необходимо использовать источник данных.
В меню Тест выберите Окна, а затем команду Представление теста.
В окне Представление теста щелкните правой кнопкой мыши модульный тест, для которого необходимо использовать источник данных, и выберите пункт Свойства.
В окне Свойства щелкните Строка подключения к данным и затем щелкните круглые скобки (...).
Следуйте инструкциям Мастера создания источника данных теста, чтобы создать подключение к данным.
Строка подключения добавляется к модульному тесту после первой квадратной скобки элемента [TestMethod()].
Присвоение переменным значений из источника данных
Это второй этап настройки модульного теста для использования источника данных. На этом этапе присваиваются переменные метода, так чтобы извлекать их значения из соответствующего столбца источника данных.
Присвоение переменным значений из источника данных
Откройте файл модульного теста, содержащий метод теста, для которого необходимо использовать источник данных, и найдите переменные в методе теста.
Для каждой переменной, которая должна получать значения из источника данных, следует использовать синтаксис TestContext.DataRow[“Имя_столбца”].
Примечание
Возможно, понадобится преобразовать типы данных из типов источника данных в типы данных, которые соответствуют проекту кода теста, как показано в предыдущем примере.
Выполнение модульного теста и просмотр результатов
Модульный тест, управляемый данными, выполняется, как и любой другой модульный тест. Можно просмотреть подробные результаты для каждой строки данных, использованной в тесте: для этого нужно дважды щелкнуть тест в окне Результаты теста.
Выполнение и просмотр результатов модульного теста, управляемого данными
Щелкните правой кнопкой мыши в модульном тесте и выберите пункт Выполнение тестов.
После выполнения теста дважды щелкните тест в окне Результаты теста, чтобы просмотреть результаты каждой тестовой итерации в окне Результаты теста, управляемого данными.
См. также
Ссылки
Основные понятия
Практическое руководство. Создание и выполнение модульного теста