Understanding the Differences: Functional Tests vs Integration Tests