如何在WPF中对DataGrid进行LeanFt测试?

时间:2015-11-23 04:37:06

标签: wpf testing wpfdatagrid leanft

我已经创建了一个瘦身项目并使用DataGrid创建了一个示例,但是它没有找到表格,但是我也不确定在{lean}中测试DataGrid的方法。你能帮忙解决这个问题吗?

Datagrid示例:

<Window x:Class="WpfApplication12.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Name="datagrid_window"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid x:Name="msdatagrid" AutoGenerateColumns="True">            
        </DataGrid>
    </Grid>
</Window>

我已从后面的代码中为此数据网格设置了itemsource。

Leanft测试方法:

public void TestMethod1()
{
    SDK.Init(new SdkConfiguration());
    Reporter.Init(new ReportConfiguration());
    Process.Start(@"..\..\..\Debug\WpfApplication12.exe");
    IWindow win = Desktop.Describe<IWindow>(new WindowDescription
        {
            IsChildWindow = false,
            IsOwnedWindow = false,
            AccessibleName = @"datagrid_window",
        });

    ITable table = win.Describe<ITable>(new TableDescription
        {
            Name = @"msdatagrid"
        });

    table.SelectCell(1, 1);
}

1 个答案:

答案 0 :(得分:2)

未找到测试对象异常意味着您没有为测试对象或其父级创建正确的描述。 尝试使用对象识别中心来监视数据网格,复制描述(使用底部的第二个左键)并将其粘贴到测试中。

有关OIC的更多信息,请点击此处: http://leanft-help.saas.hp.com/en/latest/HelpCenter/Content/HowTo/TestObjects_OIC.htm

在您的情况下,它将如下所示:

$(document).on('panelloaded', function(panel){
    // Do stuff here to the newly loaded panel
});

这是您可以访问datagrid单元格的方法,例如:

var table = Desktop.Describe<IWindow>(new WindowDescription
{
    ObjectName = @"datagrid_window",
    FullType = @"window",
    WindowTitleRegExp = @"MainWindow"
}).Describe<ITable>(new TableDescription
{
    ObjectName = @"msdatagrid"
});

确保根据您使用的技术添加了正确的using语句。 每个技术测试对象都在专用命名空间中定义。 对于WPF,它应该是:

var firstCell = table.Rows[0].Cells[1];
Assert.AreEqual("World", firstCell.Value);
firstCell.SetValue("World1");

您使用了HP.LFT.SDK.StdWin命名空间中的WindowDescription(根据其属性)。 HP.LFT.SDK.StdWin是本机Windows控件测试对象的命名空间,您无法在StdWin命名空间的Window上描述WPF测试对象。<​​/ p>

请注意,对于桌面应用程序,最好只运行一个应用程序实例。

我还可以看到您正在初始化SDK和Reporter。 建议使用Visual Studio LeanFT项目模板,该模板已包含您需要的所有内容(引用,初始化)以开始编写测试代码。 模板可以在visual studio的New Project对话框的C#\ Test部分下找到。

希望它有所帮助!