Avatar ·

Como configurar corretamente o ambiente de teste (setup) em Go usando o pacote testing?

Olá a todos! Comecei a estudar Go e estou tentando escrever unit tests para meu projeto. Tenho uma função que trabalha com banco de dados e executa várias queries. Para testar, preciso preparar os dados antes de cada teste: criar tabelas, inserir registros de teste e, após o teste, limpar tudo. Eu conheço as funções TestMain e t.Run, mas não consigo entender como usá-las corretamente para setup/teardown. Em outras linguagens (Java, Python), estou acostumado com anotações @Before/@After ou fixtures do pytest. Em Go, isso não existe, e sinto que estou copiando o mesmo código em cada teste. Aqui está um exemplo da minha abordagem atual (que não gosto): ```go func TestGetUser(t *testing.T) { db := setupDB() // crio o banco, tabelas, insiro dados defer teardownDB(db) // removo as tabelas ```