1
resposta

Dois testes rodam mas deveriam dar NoSuchElementException

Pessoal, meu código na hora de executar os dois testes (o que não deveria se logar com dados inválidos e o que deveria se logar com dados válidos) passam direto, não sei exatamente o que foi que eu fiz de diferente para os testes rodarem, já que no final do primeiro teste, que é quando dá a mensagem de erro, a tela ainda é a de cadastrar-se, no segundo teste, a primeira coisa que ele faz é procurar o botão de "cadastrar usuário", e este botão só tem na primeira tela.


@Test
    public void senhasIncompativeisNaoCadastrara() {
        AppiumDriver d = AppiumDriverConfig.Instance().driver;
        MobileElement buttonRegister = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/login_botao_cadastrar_usuario");
        buttonRegister.click();

        MobileElement inputName = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/input_nome");
        inputName.setValue("karina");
        MobileElement inputPassword = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/input_senha");
        inputPassword.setValue("123");
        MobileElement inputPasswordConfirm = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/input_confirmar_senha");
        inputPasswordConfirm.setValue("1234");

        MobileElement buttonConfirmRegistration = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/cadastro_usuario_botao_cadastrar");
        buttonConfirmRegistration.click();

        MobileElement messageReturnError = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/erro_cadastro");
        Assert.assertEquals("Senhas não conferem", messageReturnError.getText());
    }

    @Test
    public void deveraSeLogarComDadosValidos() throws NoSuchElementException {
        AppiumDriver d = AppiumDriverConfig.Instance().driver;
        MobileElement buttonRegister = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/login_botao_cadastrar_usuario");
        buttonRegister.click();

        MobileElement inputName = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/input_nome");
        inputName.setValue("karina");
        MobileElement inputPassword = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/input_senha");
        inputPassword.setValue("123");
        MobileElement inputPasswordConfirm = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/input_confirmar_senha");
        inputPasswordConfirm.setValue("123");

        MobileElement buttonConfirmRegistration = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/cadastro_usuario_botao_cadastrar");
        buttonConfirmRegistration.click();

        MobileElement loginButton = (MobileElement)d.findElementById("br.com.alura.aluraesporte:id/login_botao_logar");

    }
}
1 resposta

Karina, tudo bem ?

Olhando o cenário dos seus testes, parece que tudo está certo.

A mensagem de erro é exibida e tals. O que de fato aconteceu nesse throws ai é que você está falando para o compilador que esse método pode gerar essa exception e que você não está interessada em tratar.

Quando você quer tratar alguma exception, ou você coloca um expect no @Test ou pode usar ExpectedException que também vai validar isso