c# - 编码的 UI 测试和 MessageBox 出现问题 - 搜索条件

标签 c# .net winforms coded-ui-tests

我目前正在将我的 UI 测试转移到 CodedUI 测试。现在,我面临以下问题:

在我的单元测试中,我调用了位于 UIMap 中的方法两次。该方法包含一个片段,用于检查 MessageBox 窗口是否打开,并具有一个 bool 参数,用于切换是单击消息框中的确认按钮还是取消按钮。 Messagebox 永远不会改变(即它的标题、文本、按钮)。

public void MyUiMethod(bool p)
{
    //...variable initialization...
    ApplicationUnderTest app = ApplicationUnderTest.Launch(@"some.exe");
    try
    {
        //... get to the point that triggers the MB to show...
        Assert.AreEqual(true, uImessageBoxWindow.Exists);
        if (p)
            Mouse.Click(uIConfirmButton, new Point(39, 16));
        else
            Mouse.Click(uICancelButton, new Point(49, 8));
    }
    finally
    {
        app.Close();
    }
}

第一次调用每次都没有任何问题。 第二次调用时弹出Messagebox,但测试框架无法定位。

CodedUiTestBuilder 分配给 MessageBox 的搜索条件是它的名称 (Info) 和类名 (#32770)。

有没有人对这里可能出现的问题有任何提示? MessageBox 控件是否缺少某些辅助功能?

问候,

塞布

最佳答案

您可以通过测试方法刷新 map 。因此,当您第二次调用分部类中的方法时,只需输入类似 UIMap MapName = new UIMap(); 的内容即可。然后这将刷新 map ,您可以再次调用您的窗口而不会出现刷新问题。

public void MyUiMethod(bool p)
{
    UIMap MapName = new UIMap();

    //...variable initialization...
    ApplicationUnderTest app = ApplicationUnderTest.Launch(@"some.exe");
    try
    {
        //... get to the point that triggers the MB to show...
        Assert.AreEqual(true, MapName.uImessageBoxWindow.Exists);

        UIMap MapName = new UIMap();
        if (p)
            Mouse.Click(MapName.uIConfirmButton, new Point(39, 16));
        else
            Mouse.Click(MapName.uICancelButton, new Point(49, 8));
    }
    finally
    {
        app.Close();
    }
}

希望这对您有所帮助。

关于c# - 编码的 UI 测试和 MessageBox 出现问题 - 搜索条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174467/

相关文章:

c# - 通过 ApiController 将 JSON 发布到 Azure 队列

c# - 在 ODataController 中使用服务引用不适用于 IIS

c# - 如何使用 SPI_SETWORKAREA 标志调整桌面工作区的大小?

c++ - 如果未安装驱动程序,EnumDisplayDevices 能否检测到设备?

c# - 组合框显示system.data.datarowview

c# - 如何以正确的方式初始化 KeyValuePair 对象?

c# - ERPTable 列被截断

c# - WPF - 将图像绘制到 Canvas 上并反复删除和重绘

c# - 使用最小起订量测试 WinForms MVP 和事件机制

c# - 收听键盘快捷键 (c#)