Ручное кодирование теста закодированного пользовательского интерфейса - PullRequest
5 голосов
/ 04 января 2011

Я работал с функцией Coded UI Test (CUIT) VS2010.
При записи структура CodedUI генерирует множество иерархических классов.

Мне было интересно, уменьшит ли кодирование (вручную) CUIT созданный код и будет ли он оптимизирован (при поиске элементов) как сгенерированный код ??

Кроме того, каковы сценарии, в которых CUIT может быть закодирован вручную?

Ответы [ 3 ]

4 голосов
/ 28 сентября 2011

CUITe (расширенный тест на кодированный интерфейс) для людей, которые предпочитают ручное кодирование.http://cuite.codeplex.com/

CUITe - это тонкий слой, созданный поверх механизма кодированного пользовательского интерфейса Microsoft Visual Studio Team Test, который помогает уменьшить код , повышает читаемость и ремонтопригодность , в то же время предоставляя кучу интересных функций для инженера по автоматизации.

CUITe позволяет определить гораздо более простой репозиторий объектов (== UIMap).Каждая страница / окно будет определена в отдельном файле класса, и каждое определение элемента управления пользовательского интерфейса будет только одним вкладышем.Вы можете переместить общие элементы управления в родительский класс, что повышает удобство сопровождения.Вы также можете классифицировать классы определения страницы / окна в разные папки по своему усмотрению.

3 голосов
/ 27 июня 2011

Я работал над закодированным пользовательским интерфейсом, насколько я понимаю, записанный / сгенерированный код слишком сложен и сложен в обслуживании.

Я всегда использую ручное кодирование, которое просто и легко поддерживать.

Вот полный образец скрипт с пользовательским интерфейсом для приложения Silver-light

[TestMethod]
public void SilverlightHANDCODINGTest()
{
    BrowserWindow br = BrowserWindow.Launch(@"http://localhost:1377/SilverlightApplication1TestPage.html");

    UITestControl sCustom = new UITestControl(br);
    sCustom.TechnologyName = "Web";
    sCustom.SearchProperties.Add("ControlType", "Custom");
    sCustom.SearchProperties.Add("TagName", "OBJECT");
    sCustom.SearchProperties.Add("Type", "application/x-silverlight-2");
    sCustom.SearchProperties.Add("TagName", "OBJECT");

    // sCustom.DrawHighlight();

    SilverlightControl sframe = new SilverlightControl(sCustom);
    sframe.TechnologyName = "Silverlight";
    sframe.SearchProperties.Add(SilverlightControl.PropertyNames.MaxDepth, "-1");
    sframe.DrawHighlight();

    SilverlightEdit sTextBox = new SilverlightEdit(sCustom);
    sTextBox.TechnologyName = "Silverlight";
    sTextBox.DrawHighlight();
    Playback.Wait(2000);

    sTextBox.SetProperty(SilverlightEdit.PropertyNames.Text, "Thank god");

    SilverlightButton sButton = new SilverlightButton(sCustom);
    sButton.TechnologyName = "Silverlight";
    sButton.SearchProperties.Add(SilverlightButton.PropertyNames.DisplayText, "Button");

    sButton.DrawHighlight();

    Playback.Wait(2000);

    Mouse.Click(sButton);

    SilverlightComboBox sComboBox= new SilverlightComboBox(sCustom);
    sComboBox.TechnologyName = "Silverlight";

    sComboBox.DrawHighlight();

    Playback.Wait(2000);

    sComboBox.SetProperty(SilverlightComboBox.PropertyNames.SelectedItem,"Kishore");
}

Спасибо

0 голосов
/ 31 января 2011

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

...