Mocking database or use a test database

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • clover

    A lightweight document-oriented NoSQL database written in pure Golang. (by ostafen)

  • 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

  • dockertest

    Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.

  • 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.

  • 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.

    InfluxDB logo
  • gomock

    Discontinued GoMock is a mocking framework for the Go programming language. (by golang)

  • You can test the code outside those data classes using more general mocks. https://github.com/golang/mock

  • keploy

    Test generation for Developers. Generate tests and stubs for your application that actually work!

  • You could also try Keploy . It can not only automatically manage mocking for you but also save the requests you perform as unit tests.

  • testfixtures

    Ruby on Rails like test fixtures for Go. Write tests against a real database

  • 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.

  • 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.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts