Integration Testing
Tests interactions between separate components without the need for end-to-end tests.
Test Basis:
- Software and System Design
- Architecture
- Workflows
- Use Cases
- Sequence diagrams
Test objects:
- Sub-systems and databases
- Infrastructure
- Interfaces
- APIs
Two types of integration testing:
-
Component
Verifies smaller units that have unit tests work together correctly (e.g., correct interface, data flow). -
System
Tests interaction between systems such as databases, internal and external APIs, and infrastructure. Often requires mocking (e.g., external payment gateway) and often does work that end-to-end testing cannot or should not.