Our great sponsors
-
dockertest
Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
keploy
Test generation for Developers. Generate tests and stubs for your application that actually work!
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Hi, recently I wrote a small NoSQL embedded database in Go. It is meant to run as a library, for those usa cases where you don't want to run a real database server. I leave here the link: https://github.com/ostafen/clover Maybe, it can be of help
Hey, If you just want to run tests against database normally I just use an interface for repository methods, and initialise a new repository connected to a new Database, personally I usually use dockertest . I launch a docker for the test DB instance, and use a defer method to drop the used table after each test. Doing this you can contain the instance of docker with DB locally and it's automatically managed by docker test.
You can test the code outside those data classes using more general mocks. https://github.com/golang/mock
You could also try Keploy . It can not only automatically manage mocking for you but also save the requests you perform as unit tests.
A lot of good suggestions here, I would also take a look at go-testfixtures which allows you to create some simple yaml-based fixture data to use with unit testing. It's quick and easy, but yes can get unwieldy the more you add.