Sao para propostas diferentes, o testify é pra fazer alguns tipos de mocks mas ele é mais complicado de criar mocks e o foco principal dele sao os assert da vida. Ja o mockgen tem unica e exclusivamente a funcaode fazer mocks de interfaces Da pra usar o testify pra tudo, mas da muita dor de cabeça perto da facilidade do mockgen kkkkkkkkkkk
Excelente vídeo! Só fiquei com uma dúvida, eu tenho dificuldade pra escrever bons testes. As vezes começo a mockar e no fim das contas parece que meus testes não estão testando "nada" pela abstração que os mocks estão fazendo Por exemplo, no último teste do vídeo, você coloca: repo.EXPECT().FindUserByID(id).Return(nil, rest_err.NewNotFoundError("user not found")) e logo em seguida você testa se o retorno de user é nulo e se o retorno do erro é "user not found". Minha dúvida é: nesse caso, o teste não vai ser sempre verdadeiro? pois você está testando o retorno direto dos mocks
Essa é a ideia de um teste unitário, garantir que o retorno da peça externa será mantido e não vai ser alterado pelo método em si. Se você não mockar, não estará testando a unidade e sim um fluxo completo, entende? Nestes casos o teste de integração se enquadra melhor.