Data Driven тест в MSTest

Иконка Data Driven Тест

В этом посте мы узнаем, что такое Data Driven тестирование и рассмотрим, как запустить наш тест основанный на внешних данных. Также мы узнаем, как запускать тест итерациями, которые базируются на наборе данных.

Проблема

Нужно протестировать данные, которые хранятся в каком-то внешнем месте.

Нужно запустить один и тот же тест для разных тестовых данных (итерации).

Решение

Data Driven тестирование позволяет указать любой (или почти любой) источник данных, (например, база данных, Excel, XML и т.д.) и запускать наши тест кейсы, основанные на динамической/хранимой информации.

Также мы можем указать набор данных. Давайте представим, что у нас есть метод Sum() , который суммирует два числа. Мы можем определить источник данных, который содержит несколько комбинаций таких чисел, а затем запустить тест, и он будет выполнен для каждого варианта входных данных.

Как это работает?

Атрибут DataSource указывает где и как брать информацию с которой требуется работать.

Из примера ниже видно, что он будет работать с XML файлом (numbers.xml), который включен как часть теста (атрибут DeploymentItem применяется для того, чтобы убедиться, что этот ресурс будет доступен в выходном результате теста).

[TestMethod]
[DeploymentItem("numbers.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"|DataDirectory|\\numbers.xml", "StyleInfo", DataAccessMethod.Sequential)]
public void Sum()
{
    double num1 = (double)TestContext.DataRow["NumberOne"];
    double num2 = (double)TestContext.DataRow["NumberTwo"];
    double result = num1 + num2;
    Assert.IsNotNull(result);
}

Допустим, вы имеете следующий XML:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfNumbers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Numbers>
    <NumberOne>1</NumberOne>
    <NumberTwo>2</NumberTwo>
  </Numbers>
  <Numbers>
    <NumberOne>2.1</NumberOne>
    <NumberTwo>3.9</NumberTwo>
  </Numbers>
  <Numbers>
    <NumberOne>-29</NumberOne>
    <NumberTwo>21</NumberTwo>
  </Numbers>
</ArrayOfNumbers>

Теперь, если вы запустите тест и все пройдет удачно, то вы увидите, что тест прошел успешно.

Успешно пройденный тест  Data Driven тест в MSTest

Дальше можно сделать двойное нажатие на этом результате, и это покажет вам детали для каждой строки данных DataRow (каждая отдельная строка данных будет обрабатываться как отдельный юнит тест).

Строки данных DataRow  Data Driven тест в MSTest

Наслаждайтесь!

Источник: тут.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>