2015-11-23 8 views
0

Я создал скудный проект и создал образец с DataGrid, но он выбрал таблицу не найденным исключением, а также я не уверен, способ тестирования DataGrid в squaft. Не могли бы вы помочь этому исправить это?Как сделать тестирование LeanFt для DataGrid в WPF?

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 для этого DataGrid из кода позади.

метод 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); 
} 

ответ

2

тест объект не найден исключение означает, что вы не создали правильное описание для вашего тестового объекта или его родителя. Попробуйте использовать центр идентификации объекта, чтобы шпионить за datagrid, скопируйте описание (используя вторую левую кнопку внизу) и вставьте его в свой тест.

Более подробная информация о ОИСЕ здесь: http://leanft-help.saas.hp.com/en/latest/HelpCenter/Content/HowTo/TestObjects_OIC.htm

В вашем случае это будет выглядеть следующим образом:

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

Это, как вы можете получить доступ к DataGrid клетки, например:

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

Убедитесь, что вы добавили правильную инструкцию использования в соответствии с используемой вами технологией. Каждый объект тестирования технологии определен в выделенном пространстве имен. Для WPF это должно быть:

using HP.LFT.SDK.WPF; 

Вы использовали WindowDescription из пространства имен HP.LFT.SDK.StdWin (по своим свойствам). HP.LFT.SDK.StdWin - это пространство имен для собственных окон, контролирующих объекты тестирования, и вы не можете описать тестовый объект WPF в окне из пространства имен StdWin.

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

Я также вижу, что вы инициализируете SDK и репортер. Рекомендуется использовать шаблон проекта визуальной студии LeanFT, который уже содержит все необходимое (ссылки, инициализация), чтобы начать кодирование ваших тестов. Шаблоны можно найти в разделе C# \ Test в диалоговом окне «Новый проект» визуальной студии.

Надеюсь, это поможет!