Практическое руководство. Создание закодированного теста пользовательского интерфейса, управляемого данными

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

Требования

  • Visual Studio Ultimate, Visual Studio Premium

После создания закодированного теста пользовательского интерфейса с конкретными данными можно выполнять его множество раз с различными наборами данных для тестирования различных условий.Для этого необходимо добавить параметры из источника данных, чтобы создать управляемый данными закодированный тест пользовательского интерфейса.Каждая строка в источнике данных — это итерация закодированного теста пользовательского интерфейса.Общий результат теста основывается на результате всех итераций.Например, если одна итерация завершается неудачей, то весь тест также будет считаться непройденным.

При создании методов или утверждений для закодированного теста пользовательского интерфейса путем их записи все константы, на которые ссылаются записанные методы, параметризируются в классы параметров.Например, при добавлении метода с именем AddTwoNumbers автоматически создается класс с именем AddTwoNumbersParams, в который добавляется поле для каждого постоянного значения, используемого при записи метода.При создании метода утверждения с именем AssertForAdd для ожидаемых значений создается класс AssertforAddExpectedValues.Эти классы создаются автоматически и используются в последующих шагах.

Вносятся все изменения теста, необходимо включить его использовать источник данных для параметров в файл исходного кода теста ie.. ( CodedUITest1.cs).Код в файле UIMap.Designer.cs изменить нельзя.

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

  • Класс закодированного теста пользовательского интерфейса CodedUITest1.

  • Тестовый метод CodedUITestMethod1().

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

Источник данных — это .csv-файл, содержащий следующие данные:

Input1

Input2

ExpectedResult

3

4

7

5

6

11

1200

24000

25200

Создание файла и добавить его к проекту закодированных тестов пользовательского интерфейса.

Создание управляемого данными закодированного теста пользовательского интерфейса

Для создания управляемого данными закодированного теста пользовательского интерфейса выполните следующие действия.

  1. В Обозреватель решений откройте решение, содержащее проект закодированных тестов пользовательского интерфейса и открыть закодированный тест пользовательского интерфейса для внесения изменений.

  2. Добавьте атрибут источника данных непосредственно в коде, в линии непосредственно над этим методом теста.Можно использовать строки источника данных примера в таблице ниже, скопировав их в код и внесите необходимые изменения.

    Тип источника даты

    Атрибут источника данных

    CSV-файл

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod]

    Excel

    DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=|DataDirectory|\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]

    Тестовый случай в Team Foundation Server

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://vlm13261329:8080/tfs/DefaultCollection;Agile", "30", DataAccessMethod.Sequential), TestMethod]

    XML

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\data.xml", "Iterations", DataAccessMethod.Sequential), DeploymentItem("data.xml"), TestMethod]

    SQL Express

    [DataSource("System.Data.SqlClient", "Data Source=.\\sqlexpress;Initial Catalog=tempdb;Integrated Security=True", "Data", DataAccessMethod.Sequential), TestMethod]

    Только что созданный набор данных теперь доступен в методе теста.Класс TestContext.DataRow используется для доступа к текущей строке данных из источника данных.Доступ к какой из строк осуществляется с использованием следующего синтаксиса:

    string paramVal = TestContext.DataRow["Input1"]
    
  3. В обозревателе решений откройте файл CodedUITest1.cs.Внесите в метод CodedUITestMethod1() следующие изменения.

    1. Добавьте в код следующие две строки перед вызовом метода AddTwoNumbers, чтобы задать значения складываемых чисел.

      this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
          TestContext.DataRow["Input1"].ToString();
      this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
          TestContext.DataRow["Input2"].ToString();
      
    2. Добавьте следующую строку кода перед вызовом метода AssertforAdd, чтобы задать значение для метода утверждения.

      this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = 
          TestContext.DataRow["ExpectedResult"].ToString();
      

      Ниже приведен пример вида метода закодированного теста пользовательского интерфейса с добавленными параметрами и источником данных:

      [DeploymentItem("DataDriven.csv"), 
          DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", 
              "|DataDirectory|\\DataDriven.csv", "DataDriven#csv", 
              DataAccessMethod.Sequential), 
          TestMethod]
      public void CodedUITestMethod1()
      {
          // To generate code for this test, select "Generate Code for 
          // Coded UI Test" from the shortcut menu and select one of 
          // the menu items.
          this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
              TestContext.DataRow["Input1"].ToString();
          this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
              TestContext.DataRow["Input2"].ToString();
          this.UIMap.AddTwoNumbers();
      
          this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = 
              TestContext.DataRow["ExpectedResult"].ToString();
          this.UIMap.AssertforAdd();
      }
      
  4. Сохраните изменения в файле исходного кода CodedUITest1.cs.

  5. Для выполнения закодированного теста пользовательского интерфейса щелкните правой кнопкой мыши закодированный тест пользовательского интерфейса в редакторе кода и выберите команду Выполнение модульных тестов.

    После выполнения тестов в окне Результаты теста будут показаны итоговые результаты для всех итераций теста.Чтобы просмотреть сведения о каждой итерации, дважды щелкните тест в окне Результаты теста.

Руководство

Дополнительные сведения см. в разделах и Проверка непрерывной работы с Visual Studio 2012 – Chapter 2: Модульное тестирование: Тестирование внутриПроверка непрерывной работы с Visual Studio 2012 – Chapter 5: Системные тесты автоматизации

См. также

Ссылки

UIMap

Assert

Основные понятия

Проверка кода с помощью закодированных тестов пользовательского интерфейса

Рекомендации по выполнению закодированных тестов пользовательского интерфейса

Поддерживаемые конфигурации и платформы для закодированных тестов пользовательского интерфейса и записей действий

Другие ресурсы

Создание закодированных тестов пользовательского интерфейса