c# - XAML View /控件的 GUI 测试框架

标签 c# wpf user-interface xaml testing

我正在寻找可帮助我测试 XAML View /控件的测试框架。不仅仅是为了验证正确的数据绑定(bind),尤其是为了测试更复杂控件的外观和行为。显然,这通常会导致手动测试。

我的想法是这样的:

  1. 使用您使用的任何单元测试框架编写普通单元测试。
  2. 使用测试数据模拟 View 模型。
  3. 创建/指定控件并提供 View 模型和所需资源。
  4. (可选)定义一组手动断言。

执行此测试时,您应该会看到给定的任何断言(可能是带有接受按钮的复选框)和相关控件。可能在一个容器或一个额外的窗口中(尤其是当您正在测试一个 Window 控件时)。

我认为这在开发控件(您提供一些测试数据并且可以在没有整个应用程序的情况下检查控件)或用于验证视觉样式和行为的部分系统测试时非常方便。使用专门的运行程序,还应该可以汇总断言结果并创建更全面的测试报告。

我已经实现了一个非常原始的运行者,但我觉得它可能会好得多。示例测试(looks like this):

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();
}

最佳答案

你看过UI automation了吗? ? 谷歌“wpf ui automation”以获得更容易理解的示例代码,然后转到 msdn。

关于c# - XAML View /控件的 GUI 测试框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1215682/

相关文章:

c# - 不同aspx页面上的下拉列表需要 "relate"互相

javascript - 如何通过 JavaScript 将 asp 文本框清空

ios - 为 iOS 应用程序显示键盘,但文本字段没有响应(键盘按钮也没有)

ios - 单击我的按钮时,无法识别的选择器发送到实例错误

c# - C# 中的泛型类型

c# - DbSet<T>.Where(where).ToList() - 为什么 SQL 不包含 where 子句?

c# - ListBox 或 ListView 中类似对话的 View

c# - 如何绑定(bind)到静态属性的子属性的附加属性

c# - 在 XAML 属性声明中绑定(bind)到父级?

python - 如何在 emacs 终端中启用 `flymake-display-err-menu-for-current-line`?