Практическое руководство. Создание закодированного теста пользовательского интерфейса, управляемого данными
С помощью Visual Studio Premium или Visual Studio Ultimate можно создать закодированный тест пользовательского интерфейса, применяемый для проверки правильности работы пользовательского интерфейса приложений. Закодированный тест пользовательского интерфейса выполняет действия с элементами управления пользовательского интерфейса приложения и проверяет правильность значений, отображаемых в заданных элементах управления. Дополнительные сведения о создании закодированного теста пользовательского интерфейса см. в разделе Практическое руководство. Создание закодированного теста пользовательского интерфейса.
После создания закодированного теста пользовательского интерфейса с конкретными данными можно выполнять его множество раз с различными наборами данных для тестирования различных условий. Для этого необходимо добавить параметры из источника данных, чтобы создать управляемый данными закодированный тест пользовательского интерфейса. Каждая строка в источнике данных — это итерация закодированного теста пользовательского интерфейса. Общий результат теста основывается на результате всех итераций. Например, если одна итерация завершается неудачей, то весь тест также будет считаться непройденным.
Общие сведения об управляемых данными тестах см. в разделе Практическое руководство. Создание модульного теста, управляемого данными.
При создании методов или утверждений для закодированного теста пользовательского интерфейса путем их записи все константы, на которые ссылаются записанные методы, параметризируются в классы параметров. Например, при добавлении метода с именем AddTwoNumbers автоматически создается класс с именем AddTwoNumbersParams, в который добавляется поле для каждого постоянного значения, используемого при записи метода. При создании метода утверждения с именем AssertForAdd для ожидаемых значений создается класс AssertforAddExpectedValues. Эти классы создаются автоматически и используются в последующих шагах.
Все изменения теста, необходимые для того, чтобы тест мог использовать источник данных с параметрами, вносятся в файл исходного кода теста (например, CodedUITest1.cs). Код в файле UIMap.Designer.cs изменить нельзя.
После создания закодированного теста пользовательского интерфейса можно с помощью следующей процедуры добавить в тест источник данных и параметры. В следующем примере предполагается, что кодовые точки присутствуют в решении:
Класс закодированного теста пользовательского интерфейса CodedUITest1.
Тестовый метод CodedUITestMethod1().
Данный метод теста предназначен для простого приложения калькулятора; он добавляет два числа и проверяет правильность результата их сложения (в случае положительного результата проверки тест завершается успешно).
Источник данных — это .csv-файл, содержащий следующие данные:
Input1 |
Input2 |
ExpectedResult |
---|---|---|
3 |
4 |
7 |
5 |
6 |
11 |
1200 |
24000 |
25200 |
Создайте файл и добавьте его в свой тестовый проект.
Создание управляемого данными закодированного теста пользовательского интерфейса
Для создания управляемого данными закодированного теста пользовательского интерфейса выполните следующие действия.
В обозревателе решений откройте решение, содержащее тестовый проект.
В меню Тест выберите Окна, а затем команду Представление теста.
Откроется окно Представление тестов, в котором будет открыт закодированный тест пользовательского интерфейса.
В окне Представление теста щелкните метод закодированного теста пользовательского интерфейса и выберите команду Свойства.
Будет открыто окно Свойства.
Чтобы задать источник данных для закодированного теста пользовательского интерфейса, щелкните в окне Свойства кнопку с многоточием (...) справа от поля Строка подключения к данным.
Будет открыт Мастер создания источника данных теста.
Выберите тип источника данных, который предполагается использовать. Например, выберите .csv в качестве типа источников данных. Нажмите кнопку Далее и укажите путь и имя .csv-файла, после чего нажмите и нажмите кнопку Готово.
Только что созданный набор данных теперь доступен в методе теста. Класс TestContext.DataRow используется для доступа к текущей строке данных из источника данных. Доступ к какой из строк осуществляется с использованием следующего синтаксиса:
string paramVal = TestContext.DataRow["Input1"]
В обозревателе решений откройте файл CodedUITest1.cs. Внесите в метод CodedUITestMethod1() следующие изменения.
Добавьте в код следующие две строки перед вызовом метода AddTwoNumbers, чтобы задать значения складываемых чисел.
this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString();
Добавьте следующую строку кода перед вызовом метода 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(); }
Сохраните изменения в файле исходного кода CodedUITest1.cs.
Чтобы запустить закодированный тест пользовательского интерфейса, щелкните его правой кнопкой мыши в окне Представление тестов и выберите команду Выполнить выбранное.
После выполнения тестов в окне Результаты теста будут показаны итоговые результаты для всех итераций теста. Чтобы просмотреть сведения о каждой итерации, дважды щелкните тест в окне Результаты теста.
См. также
Задачи
Практическое руководство. Создание закодированного теста пользовательского интерфейса
Ссылки
Основные понятия
Практическое руководство. Создание модульного теста, управляемого данными
Рекомендации по выполнению закодированных тестов пользовательского интерфейса