2011-01-04 16 views
5

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

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

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

+1

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

ответ

4

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

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

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

+0

Я использую CUITe с v1.0.1, и это было здорово! :) –

0

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

3

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

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

Вот полный образец рука закодированы сценарий UI для Silver-свет приложение

[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

Вы хотите сказать, что вы не создаете UIMaps? Похоже, что этот код должен входить в файлы UIMap, а не сам метод тестирования, чтобы отделить тестовую спецификацию от тестовой реализации. Также кажется, что вам нужно хорошо знать кодированные интерфейсные интерфейсы API, чтобы иметь возможность писать такой код – EdmundYeung99

+0

@ EdmundYeung99, но я думаю, что это действительно хороший пример кода только для рук. –

Смежные вопросы