Olá Matheus, tudo bem?
A utilização da função findByText()
torna o teste assíncrono porque ela espera até que o texto buscado seja encontrado na página. Já a função getByText()
busca o texto imediatamente e, caso não encontre, retorna um erro.
A utilização do findByText()
é recomendada em testes que envolvem interações do usuário, como no caso do evento de clique, porque pode haver uma demora na atualização da página após a interação. Dessa forma, o teste assíncrono garante que a página foi atualizada corretamente antes de prosseguir com o teste.
No entanto, se o seu teste funcionou corretamente utilizando a função getByText()
, é possível que o evento de clique tenha sido rápido o suficiente para que a atualização da página tenha ocorrido imediatamente. Como é o caso de aplicações SPA que não precisão recarregar todo o HTML da página, apenas a parte que foi atualizada.
Em resumo, a utilização do findByText()
é recomendada em testes que envolvem interações do usuário. Se o seu teste funcionou corretamente utilizando a função getByText()
, não há problema em utilizá-la, desde que você tenha plena convicção que o elemento eperado não vai demorar para aparecer em tela, o que acredito ser díficil calcular, então neste caso opte sempre pelo findByText()
.
Espero ter ajudado e bons estudos!