Как выполнить автоматизированный тест пользовательского интерфейса в приложении WPF для создания диаграмм - PullRequest
0 голосов
/ 18 марта 2019

Предположим, у меня есть приложение для создания диаграмм WPF, как в этом примере: https://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part-4

  • Как мне выполнить автоматический тест пользовательского интерфейса для таких функций, как:
  • Вставка нового элемента при перетаскиванииand drop
  • Подключение 2 элементов
  • Удаление элемента

Я видел тестовые библиотеки, такие как "White" или "Appium", которые хороши для некоторого ввода текста, но яне знаю, как сделать, например, перетаскивание элементов в автоматическом тесте.

1 Ответ

0 голосов
/ 18 марта 2019

Одно приложение диаграммы не похоже на другое приложение диаграммы.Даже если WPF используется в обоих случаях.Что важно, так это моделирование предметов и соединительных линий.

Если элементы являются обычными элементами управления WPF, то любой инструмент тестирования, поддерживающий воспроизведение (и, возможно, даже запись) таких действий, как щелчок, нажатие мыши, отпускание и перетаскивание, будет поддерживать автоматизацию вышеуказанных действий.С такими утверждениями, как

dragAndDrop(source, sx, sy, target, tx, ty)

Это предполагает надежную идентификацию исходных и целевых объектов.Имеют ли они уникальные свойства, которые отличают один, например, линейный элемент от другого?

Если тестируемое приложение отображает элементы на холсте (как это делает дизайнер диаграмм WPF), тогда доступ на основе объектов может быть вневопрос.Основанный на изображении подход может быть единственным жизнеспособным решением.Эквивалент выше dragAndDrop() вызова с использованием тестирования на основе изображения :

var img = waitForImage("MyItem");
var x = img.x;
var y = img.y;
mousePress(x, y, MouseButton.LeftButton);
mouseMove(x, y);
mouseRelease(x,y, MouseButton.LeftButton);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...