integration-test-go
testfixtures
integration-test-go | testfixtures | |
---|---|---|
1 | 4 | |
1 | 1,055 | |
- | 1.2% | |
0.0 | 6.3 | |
almost 2 years ago | 5 days ago | |
Go | Go | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
integration-test-go
-
Integration tests with Go and testcontainers
First, let's describe the service itself. Service in Github. The service uses gorilla/mux and Postgres. It implements a clean architecture and has such file structure:
testfixtures
-
How to mock database calls
I'm the author of https://github.com/go-testfixtures/testfixtures, a library written to make it easier to write tests with a real database and test data. You might want to use it together with docker-compose, for example.
-
Integration tests with Go and testcontainers
To solve the problem we will use testfixtures. Create a folders fixtures и fixtures/storage and put a file users.yaml inside:
-
Mocking database or use a test 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.
-
Ask HN: What are some tools / libraries you built yourself?
I built an alternative to Make written in Go that is simpler to use and cross-platform: https://taskfile.dev/
Also, a library to write tests with databases for Go: https://github.com/go-testfixtures/testfixtures
What are some alternatives?
testcontainers-go - Testcontainers for Go is a Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done.
go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests
Testify - A toolkit with common assertions and mocks that plays nicely with the standard library
Hamcrest - Hamcrest matchers for the Go programming language
integration-test-go
ginkgo - A Modern Testing Framework for Go
httpmock - HTTP mocking for Golang
GoSpec - Testing framework for Go. Allows writing self-documenting tests/specifications, and executes them concurrently and safely isolated. [UNMAINTAINED]
assert - :exclamation:Basic Assertion Library used along side native go testing, with building blocks for custom assertions
dbcleaner - Clean database for testing, inspired by database_cleaner for Ruby
go-carpet - Tool for show test coverage in terminal for Go source files
GoAws - AWS (SQS/SNS) Clone for Development testing