Testando aplicativos da Windows Store com testes de UI codificados
Use testes de IU codificados para verificar os aplicativos da Windows Store.
Criar um aplicativo simples da Windows Store
Se desejar executar testes de IU codificados no aplicativo da Windows Store baseado em XAML, é preciso definir uma propriedade de automação única que identifique cada controle.
No menu Ferramentas, aponte para Opções e escolha Editor de Texto, XAML e Diversos.
Marque a caixa de seleção para nomear automaticamente elementos interativos na criação.
Crie um novo projeto para um aplicativo da Windows Store baseado em XAML usando um modelo Visual C# ou Visual Basic.
No Gerenciador de Soluções, abra MainPage.xaml.Na Caixa de Ferramentas, arraste um controle de botão e um controle de caixa de texto para a superfície do design.
Clique duas vezes no controle de botão e adicione o código a seguir:
private void button_Click_1(object sender, RoutedEventArgs e) { this.textBox.Text = this.button.Name; }
Public NotInheritable Class MainPage Inherits Page Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles Button.Click Me.textBox.Text = Me.button.Name End Sub End Class
Pressione F5 para executar o aplicativo da Windows Store.
Crie e execute um teste de IU codificado no aplicativo da Windows Store
Crie um novo projeto de teste de IU codificado para o aplicativo da Windows Store.
Escolha editar o mapa de interface do usuário usando a ferramenta de fios.
Use a ferramenta de fios no Construtor de Teste de IU Codificado para selecionar o bloco de aplicativos, clique com o botão direito do mouse em AutomationId e escolha Copiar Valor para a Área de Transferência.O valor na área de transferência será usado mais tarde para gravar a ação para ativar o aplicativo para teste.
No aplicativo da Windows Store em execução, use a ferramenta de fios para selecionar o controle de botão e o controle de caixa de texto.Depois de adicionar cada controle, escolha o botão Adicionar controle ao mapa de controle da IU na barra de ferramentas do Construtor de Teste de IU Codificado.
Escolha o botão Gerar Código na barra de ferramentas do Construtor de Teste de IU Codificado e escolha Gerar para criar código para alterações no mapa de controle da IU.
Escolha o botão para definir um valor na caixa de texto.
Use a ferramenta de fios para selecionar o controle de caixa de texto e selecione a propriedade Texto.
Adicione uma asserção.Ela será usada no teste para verificar se o valor está correto.
Adicione e gere o código para a asserção.
Visual C#
No Gerenciador de Soluções, abra o arquivo UIMap.Designer.cs para exibir o código adicionado aos controles e ao método assert.
Visual Basic
No Gerenciador de Soluções, abra o arquivo CodedUITest1.vb e, no código do método de teste CodedUITestMethod1(), clique com o botão direito do mouse na chamada para o método de asserção automaticamente adicionado Me.UIMap.AssertMethod1() e escolha Ir para Definição.Isso abrirá o arquivo UIMap.Designer.vb no editor de código para ser possível exibir o código adicionado aos controles e ao método assert.
Cuidado Não modifique o arquivo UIMap.designer.cs ou UIMap.Designer.vb diretamente.Se fizer isso, as alterações no arquivo serão substituídas sempre que o teste for gerado.
Método assert
public void AssertMethod1() { #region Variable Declarations XamlEdit uITextBoxEdit = this.UIApp1Window.UITextBoxEdit; #endregion // Verify that the 'Text' property of 'textBox' text box equals 'button' Assert.AreEqual(this.AssertMethod3ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text); }
Public Sub AssertMethod1() Dim uITextBoxEdit As XamlEdit = Me.UIApp2Window.UITextBoxEdit 'Verify that the 'Text' property of 'textBox' text box equals 'button' Assert.AreEqual(Me.AssertMethod1ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text) End Sub
Controles
#region Properties public XamlButton UIButtonButton { get { if ((this.mUIButtonButton == null)) { this.mUIButtonButton = new XamlButton(this); #region Search Criteria this.mUIButtonButton.SearchProperties[XamlButton.PropertyNames.AutomationId] = "button"; this.mUIButtonButton.WindowTitles.Add("App1"); #endregion } return this.mUIButtonButton; } } public XamlEdit UITextBoxEdit { get { if ((this.mUITextBoxEdit == null)) { this.mUITextBoxEdit = new XamlEdit(this); #region Search Criteria this.mUITextBoxEdit.SearchProperties[XamlEdit.PropertyNames.AutomationId] = "textBox"; this.mUITextBoxEdit.WindowTitles.Add("App1"); #endregion } return this.mUITextBoxEdit; } } #endregion #region Fields private XamlButton mUIButtonButton; private XamlEdit mUITextBoxEdit; #endregion
#Region "Properties" Public ReadOnly Property UIButtonButton() As XamlButton Get If (Me.mUIButtonButton Is Nothing) Then Me.mUIButtonButton = New XamlButton(Me) Me.mUIButtonButton.SearchProperties(XamlButton.PropertyNames.AutomationId) = "button" Me.mUIButtonButton.WindowTitles.Add("App2") End If Return Me.mUIButtonButton End Get End Property Public ReadOnly Property UITextBoxEdit() As XamlEdit Get If (Me.mUITextBoxEdit Is Nothing) Then Me.mUITextBoxEdit = New XamlEdit(Me) Me.mUITextBoxEdit.SearchProperties(XamlEdit.PropertyNames.AutomationId) = "textBox" Me.mUITextBoxEdit.WindowTitles.Add("App2") End If Return Me.mUITextBoxEdit End Get End Property #End Region #Region "Fields" Private mUIButtonButton As XamlButton Private mUITextBoxEdit As XamlEdit #End Region
No Gerenciador de Soluções, abra o arquivo CodedUITest1.cs ou CodedUITest1.vb.Agora, é possível adicionar código ao método CodedUTTestMethod1 para as ações necessárias para executar o teste usando os controles adicionados ao UIMap:
Ative o aplicativo da Windows Store usando a propriedade de ID de automação copiada anteriormente na área de transferência.
XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
Adicione um gesto para tocar no controle de botão:
Gesture.Tap(this.UIMap.UIApp1Window. UIButtonButton);
Gesture.Tap(Me.UIMap.UIApp2Window. UIButtonButton)
Verifique se a chamada ao método de asserção gerada automaticamente vem depois da inicialização do aplicativo e do gesto de toque no botão:
this.UIMap.AssertMethod1();
Me.UIMap.AssertMethod1()
Depois de adicionar o código, o método de teste CodedUITestMethod1 deve aparecer da seguinte maneira:
[TestMethod] public void CodedUITestMethod1() { // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items. // Launch the app. XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App"); // Tap the button. Gesture.Tap(this.UIMap.UIApp1Window.UIButtonButton); this.UIMap.AssertMethod1(); }
<CodedUITest(CodedUITestType.WindowsStore)> Public Class CodedUITest1 <TestMethod()> Public Sub CodedUITestMethod1() ' ' To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items. ' ' Launch the app. XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App") '// Tap the button. Gesture.Tap(Me.UIMap.UIApp2Window.UIButtonButton) Me.UIMap.AssertMethod1() End Sub
Compile seu teste e execute-o usando o gerenciador de testes.
O aplicativo da Windows Store é ativado, o botão da ação de tocar está concluído e a propriedade Texto da caixa de texto é preenchida e validada usando o método assert.
Depois da conclusão do teste, o gerenciador de testes exibe que o teste foi aprovado.
Perguntas e respostas
P: Por que não vejo a opção de registrar meu teste de IU codificado no diálogo Gerar Código para Teste de IU Codificado?
R: Não há suporte para a opção de registrar em aplicativos da Windows Store.
P: Posso criar um teste de IU codificado para meus aplicativos da Windows Store com base em WinJS?
R: Não. Somente aplicativos baseados em XAML são compatíveis.
P: Posso criar testes de IU codificados para meus aplicativos da Windows Store em um sistema que não esteja executando o Windows 8?
R: Não, o modelo de Projeto de teste de IU codificado (aplicativos da Windows Store) está disponível apenas no Windows 8.
P: Por que não posso modificar o código do arquivo UIMap.Designer?
R: Todas as alterações de código que você fez no arquivo UIMapDesigner.cs serão substituídas cada vez que você gerenciar o código usando o UIMap - Coded UI Test Builder.Se você tiver de modificar um método gravado, copie-o para o arquivo UIMap.cs e renomeie-o.O arquivo UIMap.cs pode ser usado para substituir métodos e propriedades no arquivo UIMapDesigner.cs.Você deve remover a referência para o método original no arquivo Coded UITest.cs e substituí-la pelo nome do método renomeado.
Consulte também
Conceitos
Verificando código pela Automação da Interface do Usuário
Definir uma propriedade de automação exclusiva para controles da Windows Store para teste