2011-01-04 37 views
5

Tôi đã làm việc với tính năng Kiểm tra giao diện người dùng được mã hóa (CUIT) của VS2010.
Khi ghi khuôn khổ CodedUI tạo ra nhiều lớp phân cấp.Mã hóa tay Mã kiểm tra giao diện người dùng được mã hóa

Tôi đã tự hỏi liệu mã hóa (bằng tay) CUIT sẽ làm giảm mã được tạo ra và nó sẽ được tối ưu hóa (trong tìm kiếm các yếu tố) như mã được tạo ra không ??

Ngoài ra, các tình huống trong đó CUIT có thể được mã hóa bằng tay là gì?

+1

Một trong những cảnh quan có thể là máy ghi âm thử nghiệm không thể xác định vị trí điều khiển. Hoặc nếu tiêu đề cửa sổ của điều khiển vùng chứa là động – CoffeeCode

Trả lời

4

CUITe (Coded UI thử nghiệm nâng cao) Khung dành cho những người thích mã hóa tay. http://cuite.codeplex.com/

CUITe là một lớp mỏng phát triển trên cơ Coded UI thử nghiệm Microsoft Visual Studio Team Test của giúp giảm mã, tăng khả năng đọctrì, trong khi cũng cung cấp một loạt các tính năng mát mẻ cho kỹ sư tự động hóa.

CUITe cho phép bạn xác định kho lưu trữ đối tượng đơn giản hơn nhiều (== UIMap). Mỗi trang/cửa sổ sẽ được định nghĩa trong một tệp lớp riêng biệt và mỗi định nghĩa kiểm soát giao diện người dùng sẽ chỉ là một lớp lót. Bạn có thể di chuyển các điều khiển phổ biến đến một lớp cha làm tăng khả năng bảo trì. Bạn cũng có thể phân loại các lớp định nghĩa trang/cửa sổ thành các thư mục khác nhau khi bạn cho là phù hợp.

+0

Tôi đã sử dụng CUITe từ phiên bản v1.0.1 và nó thật tuyệt vời! :) –

0

Bạn có thể viết ít mã hơn nhưng có khả năng sẽ ít bảo trì hơn và dễ bị phá vỡ hơn. Bạn có thể sử dụng lớp từng phần để ghi đè hiệu quả các mệnh đề tìm kiếm sau khi mã đã được tạo.

3

Tôi đã làm việc trên giao diện người dùng được mã hóa, từ mã được ghi/tạo ra bởi sự hiểu biết của tôi quá phức tạp và khó duy trì.

Tôi luôn sử dụng mã hóa tay, đơn giản và dễ bảo trì.

Đây là đầy đủ mẫu tay mã script UI cho bạc-ánh sáng ứng dụng

[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"); 
} 

Cảm ơn,

+0

Bạn có nói rằng bạn không tạo UIMaps không? Có vẻ như rất nhiều mã này nên đi vào các tập tin UIMap chứ không phải là phương pháp thử nghiệm bản thân để tách Đặc điểm kỹ thuật kiểm tra từ thực hiện thử nghiệm. Ngoài ra, có vẻ như bạn cần phải rất quen thuộc với API giao diện người dùng được mã hóa để có thể viết mã như thế này – EdmundYeung99

+0

@ EdmundYeung99 nhưng tôi nghĩ đó thực sự là một ví dụ điển hình về mã chỉ tay. –

Các vấn đề liên quan