dadosjusbr / storage

APIs de armazenamento do dadosjusbr
MIT License
4 stars 1 forks source link
hacktoberfest

Storage

Coverage Status

APIs de armazenamento do dadosjusbr

Como contribuir com os testes e executa-los.

Mocks

Os mocks são importantes peças para conseguirmos simular comportamentos de objetos. Nesse repositório, os mocks são utilizados no arquivo de teste "client_test.go", onde simulamos o comportamento dos diversos métodos que temos nas interfaces dos subdiretórios do diretório "repo".

Sempre que as interfaces forem modificadas, é necessário gerar os mocks novamente, sobrescrevendo os arquivos antigos pelos novos. Eles são gerados automaticamente, utilizando o passo a passo descrito logo a seguir.

Gerando mocks

Estamos utilizando a biblioteca gomock para gerar nossos mocks. Siga a documentação do gomock para conseguir instalar o mockgen no seu computador.

Com o mockgen instalado, basta executar os seguintes comandos:

mockgen --source ./repo/database/interface.go --destination ./repo/database/database_mock.go
mockgen --source ./repo/file_storage/interface.go --destination ./repo/file_storage/file_storage_mock.go

Com esses comandos, os mocks antigos são sobrescritos por novos e atualizados.

Subir o banco de teste com o Docker

Para conseguir testar as funcionalidades que acessam diretamente o banco de dados, em /repo/database/postgres_test.go, é necessário ter o banco de dados rodando. Execute os seguintes comandos:

Para buildar a imagem do banco de teste:

docker build -t dadosjusbr_test repo/database

Para subir o banco de dados:

docker run -d --name dadosjusbr_test -p 5432:5432 dadosjusbr_test

Em caso de erro, você pode verificar os logs com o seguinte comando:

docker logs dadosjusbr_test

Para parar o container com o banco de dados, utilize o seguinte comando:

docker stop dadosjusbr_test

Para remover o container, utilize o seguinte comando:

docker rm dadosjusbr_test

Iniciando banco de dados local a partir de seu container

docker start dadosjusbr_test

Rodando os testes

Com todas as configurações feitas, basta executar os seguintes comandos para executar os testes:

$ go test -v ./...
$ go test -v ${caminho para o arquivo de teste}

Executando o comando, você poderá ver as estatisticas relacionadas aos testes, como tempo que demorou a ser concluido, status, diretório, etc...