2011-01-04 30 views
5

He estado trabajando con la función de prueba de interfaz de usuario codificada (CUIT) de VS2010.
Al grabar el marco de CodedUI genera muchas clases jerárquicas.Codificación manual de una prueba de interfaz de usuario codificada

Me preguntaba si la codificación (a mano) de un CUIT reduciría el código creado y ¿estaría tan optimizado (en elementos de búsqueda) como el código generado?

¿Cuáles son los escenarios donde un CUIT podría codificarse a mano?

+1

Uno de los más destacados podría ser que la grabadora de prueba no puede localizar los controles. O si los títulos de las ventanas de los controles del contenedor son dinámicos – CoffeeCode

Respuesta

4

CUITE (Coded UI mejorado del ensayo) Marco es para las personas que prefieren la codificación manual. http://cuite.codeplex.com/

CUITE es una capa delgada desarrollado en la parte superior del motor de prueba con código de interfaz de usuario de Microsoft Visual Studio Team Test que ayuda reducir código, aumenta la legibilidad y mantenimiento, mientras que también proporciona un montón de características interesantes para el ingeniero de automatización.

CUITe le permite definir un repositorio de objetos mucho más simple (== UIMap). Cada página/ventana se definirá en un archivo de clase separado, y cada definición de control de la interfaz de usuario será solo un trazador de líneas. Puede mover controles comunes a una clase principal que aumenta la capacidad de mantenimiento. También puede categorizar las clases de definición de página/ventana en diferentes carpetas según lo considere apropiado.

+0

¡He estado usando CUITe desde la v1.0.1 y ha sido genial! :) –

0

Puede escribir menos código a mano, pero es probable que sea menos sostenible y más propenso a romperse. Puede usar la clase parcial para anular de manera efectiva las cláusulas de búsqueda después de que se haya generado el código.

3

He estado trabajando en la interfaz de usuario codificada, por lo que entiendo que el código registrado/generado es demasiado complejo y difícil de mantener.

Siempre utilizo la codificación manual, que es simple y fácil de mantener.

Aquí es muestra completa guión mano codificado interfaz de usuario para aplicaciones de plata luz

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

Gracias,

+0

¿Está diciendo que no crea UIMaps? Parece que una gran cantidad de este código debe ir en los archivos de UIMap en lugar del propio método de prueba para separar la Especificación de prueba de la Implementación de prueba. También parece que necesitas estar muy familiarizado con las API de IU codificadas para poder escribir código como este – EdmundYeung99

+0

@ EdmundYeung99, pero creo que es realmente un buen ejemplo de código de solo mano. –

Cuestiones relacionadas