dbcleaner
testfixtures
Our great sponsors
dbcleaner | testfixtures | |
---|---|---|
1 | 4 | |
157 | 1,045 | |
- | 2.7% | |
1.8 | 6.6 | |
over 2 years ago | 24 days ago | |
Go | Go | |
MIT License | 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.
dbcleaner
-
The Big Unit Test Misunderstanding
It is not hard to isolate and stub a database the problem is you will not catch a lot of errors, e.g. writing a 40 char string into a VCHAR(10), DateTime conversations, ...
In Ruby on Rails it is quite common to use a real database in the unit tests. Even before containers came out and it is still fast (yes, less than 1 second).
In rails you use the same database instance for all the tests, so you do not have spin up a database instance for every case. Instead you use a database cleaner.
There also exists a JS implementation: https://github.com/khaiql/dbcleaner
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?
go-carpet - Tool for show test coverage in terminal for Go source files
go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests
bro - bro watch files in directory and run tests for them
Hamcrest - Hamcrest matchers for the Go programming language
Gauge - Light weight cross-platform test automation
ginkgo - A Modern Testing Framework for Go
goblin - Minimal and Beautiful Go testing framework
GoSpec - Testing framework for Go. Allows writing self-documenting tests/specifications, and executes them concurrently and safely isolated. [UNMAINTAINED]
goc - A Comprehensive Coverage Testing System for The Go Programming Language
assert - :exclamation:Basic Assertion Library used along side native go testing, with building blocks for custom assertions
gnomock - Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻