Тестовый каркас GUI для представлений / элементов управления XAML - PullRequest
1 голос
/ 01 августа 2009

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

То, что я имею в виду, будет выглядеть примерно так:

  1. Напишите нормальный модульный тест, используя любую среду модульного тестирования, которую вы используете.
  2. Макет модели представления с тестовыми данными.
  3. Создание / указание элемента управления и предоставление модели представления и необходимых ресурсов.
  4. (Необязательно) Определите набор ручных утверждений.

При выполнении этого теста вам должны быть представлены все приведенные утверждения (возможно, в виде флажков с кнопкой подтверждения) и соответствующий элемент управления. Может быть, в контейнере или в дополнительном окне (особенно если вы тестируете Window элемент управления).

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

Я реализовал очень примитивного раннера, но я чувствую, что это может быть намного лучше. Пример теста (который выглядит так ):

public void BasicStyle() {
    var runner = new GuiTestRunner(TestContext);
    runner.AddResources(new Uri("pack://application:,,,/Assembly;component/Resources/RadialContextMenuResources.xaml"));

    var contextMenu = ...;
    runner.Container.ContextMenu = contextMenu;

    runner.Assert("Shows a radial context menu with 7 entries.");
    runner.Assert("Each entry has a hover animation.");
    runner.Assert("Each entry can be clicked.");
    runner.Run();
}

1 Ответ

3 голосов
/ 01 августа 2009

Вы смотрели на автоматизацию пользовательского интерфейса ? Google "wpf ui автоматизация" для примера кода, который легче переварить, а затем перейдите к msdn.

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