1
resposta

[Dúvida] [Duvida] TDD no curso Go : validações, testes e páginas HTML

Boa tarde no curso (Go: validações, testes e páginas HTML) ensina teste de integração ( chamando de fato o banco de dados). Gostaria de saber fazer o teste unitário , mockando o retorno do banco de dados e afins.

Não achei nenhum outro curso do GoLang , acredito que esse seja o utlimo. Caso tenha mais cursos poderiam me indicar o link? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Lucas!

Entendo que você esteja procurando por informações sobre como realizar testes unitários e como "mockar" o retorno do banco de dados em GoLang. Embora o curso "Go: validações, testes e páginas HTML" não aborde diretamente esse tópico, é possível realizar essas ações em Go.

Para realizar testes unitários em Go, você pode usar o pacote de testes embutido na linguagem. Aqui está um exemplo simples de como um teste unitário pode ser escrito:

package main

import "testing"

func TestSoma(t *testing.T) {
    total := soma(5, 5)
    if total != 10 {
        t.Errorf("Soma foi incorreta, obtive: %d, quero: %d.", total, 10)
    }
}

Neste exemplo, a função soma é testada para verificar se retorna o valor esperado.

Quanto à criação de "mocks" para o retorno do banco de dados, você pode usar um pacote chamado "gomock". Ele permite que você gere automaticamente "mocks" a partir de suas interfaces. Aqui está um exemplo de como você pode usá-lo:

package main

import (
    "testing"
    "github.com/golang/mock/gomock"
    "github.com/meusite/meuprojeto/mocks"
)

func TestMinhaFuncao(t *testing.T) {
    ctrl := gomock.NewController(t)
    defer ctrl.Finish()

    mockBanco := mocks.NewMockMeuBanco(ctrl)
    mockBanco.EXPECT().MinhaFuncao().Return(valorQueQuero)

    resultado := minhaFuncaoQueUsaOBanco(mockBanco)
    // Agora você pode testar se o resultado é o que você espera
}

Neste exemplo, a função minhaFuncaoQueUsaOBanco é testada. Ela recebe uma interface MeuBanco como parâmetro, que é "mockada" para retornar o valor que você quer.

Infelizmente, não tenho informações sobre outros cursos de GoLang disponíveis no momento.

Espero ter ajudado e bons estudos!