Skip to main content

Learning Outcomes

Source Code

https://github.com/pact-foundation/pact-workshop-js

StepTitleConcept CoveredLearning objectivesFurther Reading
step 1Create our consumer before the Provider API even existsConsumer-driven design
  • Understand use case
step 2Write 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 3Write a Pact test for our consumerConsumer 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 4Verify the consumer pact with the Provider APIProvider 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 5Fix the consumer's bad assumptions about the ProviderHumans talking to humans (collaboration)
  • Understand that a tool facilitates collaboration, it doesn't replace it
step 6Write a pact test for 404 (missing User) in consumerTesting API invariants
  • Understand how we can test "stateful" APIs without having to create complex, sequential API calls
step 7Update API to handle 404 caseProvider States
  • How Pact deals with "stateful" interactions, via the concept of "Provider States"
step 8Write a pact test for the 401 caseTesting authenticated APIs
  • Service evolution - adding a new feature
step 9Update API to handle 401 caseService evolution
  • Understand the challenge of dealing with complex/dynamic data, such as time-bound authentication tokens
step 10Fix the provider to support the 401 caseRequest filters
  • Understand Pact's approach to dealing with complex/dynamic data, such as time-bound authentication tokens
step 11Implement a broker workflow for integration with CI/CDAutomation
  • Understand how to use Pact in a CI and CD workflow