MOCKGEN - Como fazer MOCKS de funções/interfaces em Go para testes UNITÁRIOS!?

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ม.ค. 2025

ความคิดเห็น • 6

  • @lazaromanuelcunga6195
    @lazaromanuelcunga6195 ปีที่แล้ว

    Muito bom, pensei até que não falarias dele

  • @FelipeMadureira-i2k
    @FelipeMadureira-i2k 4 หลายเดือนก่อน +1

    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

    • @huncoding
      @huncoding  3 หลายเดือนก่อน +2

      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.

    • @bruna-trustly
      @bruna-trustly หลายเดือนก่อน +1

      @@huncoding valeu!! não sou o cara da pergunta mas tirou minha dúvida também

  • @GabrielGasp
    @GabrielGasp ปีที่แล้ว

    Interessante esse pacote da Uber, achei a syntax melhor que a do stretchr/testify que é a mais usada em Go (até onde eu sei).

    • @huncoding
      @huncoding  ปีที่แล้ว

      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