integration-test-go
httpmock
integration-test-go | httpmock | |
---|---|---|
1 | 5 | |
1 | 1,878 | |
- | - | |
0.0 | 4.7 | |
almost 2 years ago | 28 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:
httpmock
- Golang rest-api testing
- [Rant] Sa Isi Bage Microserviciile in C*R
-
Integration tests with Go and testcontainers
We will use httpmock for this purpose. Inside function setupSuite(), where we created useCase and provided nil as a billingClient now we will pass mocked http client:
-
Best practices around mocking interfaces from external packages
Alternatively, you could use an http mock library like https://github.com/jarcoal/httpmock, and override the urls the RealClient calls with a mock response in your tests.
-
best way to mock/unit test http.Client?
To mock an API: https://github.com/jarcoal/httpmock to use when your code calls external APIs so you don't want your tests call the real API. No need to create an interface as you do.
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.
gock - HTTP traffic mocking and testing made easy in Go ༼ʘ̚ل͜ʘ̚༽
Testify - A toolkit with common assertions and mocks that plays nicely with the standard library
hoverfly - Lightweight service virtualization/ API simulation / API mocking tool for developers and testers
integration-test-go
mockit - Library that make mocking of Go functions/methods easy
gomock - GoMock is a mocking framework for the Go programming language.
minimock - Powerful mock generation tool for Go programming language
httpexpect - End-to-end HTTP and REST API testing for Go.
go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests
monkey - Monkey patching in Go
Mmock - Mmock is an HTTP mocking application for testing and fast prototyping