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.
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
Muito bom, pensei até que não falarias dele
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.
@@huncoding valeu!! não sou o cara da pergunta mas tirou minha dúvida também
Interessante esse pacote da Uber, achei a syntax melhor que a do stretchr/testify que é a mais usada em Go (até onde eu sei).
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