3
respostas

Nenhum teste funciona

Os testes estavam funcionando na parte de Produtos, porém depois que eu coloquei para ele verificar o item cadastrado e fazer a limpeza da tabela, nenhum teste funcionou mais nessa activity de produtos.

Segui todos os passos que estão nas aulas e revi os códigos e mesmo assim, sem sucesso. Antes dessa aula específica os testes funcionavam.

androidx.test.espresso.NoMatchingViewException: No views in hierarchy found matching: view.getId() is <2131361873/br.com.alura.orgs:id/activity_formulario_produto_nome>

3 respostas

Um ponto que notei, é que nos testes da tela de produtos efetuado durante o curso, sempre entre diretamente na tela de lista para ir a produtos ou então diretamente no formulário de produtos. Já no meu projeto, depois que começou a dar problema nesses testes, ele entra diretamente na tela de login.

Antes da aula "Limpando os dados", estava funcionando normalmente os testes nessa tela.

Olá, Ricardo.

Tudo bem?

Pelo erro que você mencionou, parece que o Espresso não está conseguindo encontrar a view com o ID activity_formulario_produto_nome. Isso pode estar relacionado à forma como o banco de dados está sendo limpo antes dos testes.

Vamos revisar alguns pontos que podem estar causando esse problema:

  1. Verifique o ID da View: Certifique-se de que o ID activity_formulario_produto_nome realmente existe no layout da sua Activity de produtos. Às vezes, um erro de digitação pode causar esse tipo de problema.

  2. Contexto Correto: Como mencionado na aula, é importante usar o targetContext em vez do context para garantir que você está acessando o banco de dados correto. Aqui está um exemplo de como você pode configurar o método preparaAmbiente:

    @Before
    fun preparaAmbiente() {
        val context = InstrumentationRegistry.getInstrumentation().targetContext
        val appDatabase = AppDatabase.getInstance(context)
        appDatabase.clearAllTables()
    }
    
  3. Sincronização: Às vezes, o Espresso pode tentar acessar a View antes que ela esteja completamente carregada. Você pode usar IdlingResource para garantir que o Espresso espere até que a UI esteja pronta.

  4. Banco de Dados: Certifique-se de que o banco de dados está sendo limpo corretamente e que não há dados residuais interferindo nos testes. Você pode verificar isso manualmente usando a ferramenta de inspeção de banco de dados do Android Studio.

Para uma resposta mais assertiva seria legal compartilhar mais detalhes, como o código que alterou.

Espero que essas dicas ajudem a resolver o problema. Qualquer dúvida manda aqui. Bons estudos!

Não verifiquei ainda. Mas assim que possível vou ver os pontos que você levantou e aviso caso de tudo certo.

Muito obrigado!