Skip to content

Latest commit

 

History

History
15 lines (14 loc) · 6.87 KB

LEARNING.md

File metadata and controls

15 lines (14 loc) · 6.87 KB

Learning Outcomes

| Step | Title | Concept Covered | Learning objectives | Further Reading | | ----------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | | step 1 | Create our consumer before the Provider API even exists | Consumer-driven design |

  • Understand use case
| | | | step 2 | Write a unit test for our consumer | - |
  • How to write a basic unit test for an HTTP Client
  • Understand how a unit test is unable to catch certain integration issues
| | | step 3 | Write a Pact test for our consumer | Consumer side pact test |
  • Understand basic Consumer-side Pact concepts
  • Understand "Matchers" to avoid test data brittleness
  • Demonstrate that Pact tests are able to catch a class of integration problems
| | | | step 4 | Verify the consumer pact with the Provider API | Provider side pact test |
  • Understand basic Provider-side Pact concepts
  • Place provider side testing in a broader testing context (e.g. where it fits on the pyramid)
| | | step 5 | Fix the consumer's bad assumptions about the Provider | Humans talking to humans (collaboration) |
  • Understand that a tool facilitates collaboration, it doesn't replace it
| | | step 6 | Write a pact test for 404 (missing User) in consumer | Testing API invariants |
  • Understand how we can test "stateful" APIs without having to create complex, sequential API calls
| | | step 7 | Update API to handle 404 case | Provider States |
  • How Pact deals with "stateful" interactions, via the concept of "Provider States"
| | | step 8 | Write a pact test for the 401 case | Testing authenticated APIs |
  • Service evolution - adding a new feature
| | | step 9 | Update API to handle 401 case | Service evolution |
  • Understand the challenge of dealing with complex/dynamic data, such as time-bound authentication tokens
| | | step 10 | Fix the provider to support the 401 case | Request filters |
  • Understand Pact's approach to dealing with complex/dynamic data, such as time-bound authentication tokens
| | | step 11 | Implement a broker workflow for integration with CI/CD | Automation |
  • Understand how to use Pact in a CI and CD workflow
| |