O teste realizado no minuto 17:33 passa com sucesso independentemente do valor que é passado para expect. Por exemplo, neste teste abaixo, onde era esperado que o contador exibisse o valor "00:01" após o botão de pausar ter sido pressionado, o mesmo não falha apesar de todos os outros valores errados esperados. No último expect é possível observar que mesmo um valor absurdo (56:03dfsdfsd) não fez o teste falhar.
Este não foi o único teste que apresentou esse comportamento inesperado. O teste realizado em 20:25 também passou com sucesso, quando eu esperava que falhasse. No teste, era esperado que houvesse apenas 1 chamada à função stopTimer, porém passar qualquer valor em called() faz com que o teste passe com sucesso. Veja que no teste abaixo eu verifiquei se a função foi chamada mais de 20 vezes, e mesmo assim o teste não falhou.
Um outro rapaz aqui no fórum compartilhou que fez uso do await nas chamadas ao widgetTester.runAsync(), mas para mim isso fez dar erro antes mesmo da verificação. Note no print abaixo que o botão de Pausar sequer foi encontrado dentre os widgets.
Com isso, resolvi fazer um último teste, que foi o de remover o await que eu acrescentei acima e buscar um texto qualquer em vez de "Pausar", e mesmo assim o teste passou com sucesso.
Já tentei entender com IA o que está acontecendo, mas ela não conseguiu solucionar o problema. Ela me indicou a colocar o await, conforme já havia sido indicado por um colega e que, como demonstrei no print mais acima, não funcionou comigo. Ao relatar para a IA que o await não resolveu o problema, ela me indicou a "não colocar interações de UI dentro do runAsync". Não sei mais o que fazer para fazer o teste funcionar como esperado (falhar com os textos obviamente errados, e ter sucesso somente com os valores verdadeiros).
Versões que estou utilizando:
Flutter 3.38.9
Mocktail ^1.0.4
Provider ^6.1.5+1
