Integration testing is a test that includes multiple components that interact with each other. Integration tests means testing complete subsystems without or very little mocking. Delinkcious has several integration tests focused on particular services. These tests are not automated Go tests. They don't use Ginkgo or the standard Go testing. They are executable programs that panic on error. These programs are designed to test cross-service interaction and how a service integrates with third-party components such as actual data stores. For example, the link_manager_e2e test performs the following steps:
- Starts the social graph service and the link service as local processes
- Starts a Postgres DB in a Docker container
- Runs the test against the link service
- Verifies the results
Let's see how it all plays out. The list of imports includes the Postgres...