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!