What you will learn in Contract Testing in Action
With Pact, PactFlow, and GitHub Actions
Chapter by chapter
Chapter 4: Implementing consumer-driven contract testing for web applications
What you learn in chapter 4 →Chapter 5: Implementing consumer-driven contract testing for mobile clients
What you learn in chapter 5 →Concepts explained in this book
- contract testingA software testing technique that verifies compatibility between a service provider and its consumers through an agreed contract of requests and responses.
- consumer contractA machine-readable agreement specifying the interactions and response expectations that a consumer requires from an API provider.
- contract brokerPact Broker is a service for sharing and managing Pact contracts, contract versions, and provider verification results between consumers and providers.
- can-i-deploycan-i-deploy is a command-line tool that determines whether a software version satisfies its contract-verification conditions for deployment.
- PactA JVM implementation of the Pact contract-testing framework for defining and verifying consumer-provider interactions.
- provider-driven contract testingProvider-driven contract testing is a contract-testing workflow in which the provider determines or contributes the contract expectations and compares them with consumer expectations.
- matching ruleA Pact DSL construct that defines how values in a contract interaction are compared, including type and pattern matching.
- integration testTesting that verifies interactions and compatibility between integrated software components or services.
- provider stateA provider state is a named precondition describing the provider data or runtime situation required before an interaction is verified.
- PactFlowPactFlow is a hosted contract-testing platform that provides broker, verification, and deployment-safety capabilities.
- loose matchingLoose matching is a comparison technique that permits flexible correspondence between actual and expected interaction data instead of requiring static values to match exactly.
- Pact specificationVersion 4 of the Pact contract specification, defining structures for consumers, providers, interactions, and metadata.
- Pact DSLA domain-specific language provided by Pact for declaring contract interactions, requests, responses, and matching constraints.
- Pact Broker CLIA command-line interface for publishing and managing Pact contracts and interacting with a Pact Broker.
- contract versionA unique revision identifier assigned to a contract as it evolves.
- webhookA webhook is an HTTP callback that delivers an event notification from one system to another when a specified event occurs.
- bi-directional contract testingBi-directional contract testing is a contract testing approach that validates compatibility through contract contributions from both sides of an integration.
- Pact mock serverA Pact mock server is a test server that intercepts consumer requests and returns responses registered in Pact interactions.
- context keywordA given statement declares the provider state or prerequisite that must exist before a Pact interaction is exercised.
- Pact JUnit 5 packageThe Pact JUnit 5 package provides JUnit 5 integration for defining and executing Pact consumer contract tests.
- testing pyramidThe test automation pyramid is a model that recommends distributing automated tests across unit, integration, and end-to-end layers, with fewer tests at slower and more expensive higher layers.
- mobile applicationSoftware designed to run on mobile devices and provide functionality through a mobile user interface.
- producerAn event producer is a service or application that creates and publishes events for consumption by other components.
- schemaA formal description of the structure, fields, data types, rules, and constraints permitted for data or an interface.
- state handlerA state handler is a provider-side configuration or callback that establishes the data or conditions required for a provider state.
- branchA branch is a named line of development used to associate Pact artifacts with a particular development stream.
- GraphQL queryA GraphQL query is a client-specified request describing the fields and data structure to retrieve from a GraphQL API.
- end-to-end testingAn end-to-end test exercises a complete user-facing workflow across the systems involved in delivering it.
- GraphQLGraphQL is a query language and runtime for APIs that lets clients request structured data through a typed schema.
- JestJest is a JavaScript testing framework that provides test structure, assertions, and test execution utilities.
- deploymentA deployment is the act or resulting state of installing a particular software version into a runtime environment.
- Pact message functionMessageProviderPact is a Pact API construct that configures a provider of message interactions for contract verification.
- endpointAn API endpoint is a network-accessible operation at a specified URL and method through which a client interacts with an API.
- HTTP response codeAn HTTP status code is a numeric code in an HTTP response indicating the result of processing a request.
- contract compatibility matrixA contract compatibility matrix is a table showing contract-verification results between consumer and provider versions.
- OpenAPI specificationOpenAPI is a standard, human-readable specification for describing the structure and behavior of HTTP APIs.
- consumer version selectorA consumer version selector is a Pact configuration that chooses consumer contract versions according to branch, deployment, release, or other version metadata.
- releaseA release is a software version designated as available or officially delivered, independently of whether it is currently deployed.
- graphql schema definition languageThe GraphQL schema definition language is a declarative language for defining the types and fields exposed by a GraphQL API.
- resolverA function that supplies the value for a GraphQL field or operation.
- contract testing lifecycleThe contract testing lifecycle is the sequence of activities for creating, verifying, sharing, and maintaining contracts between software components.
- GraphQL serverA GraphQL server is a server application that exposes a GraphQL API and executes client queries against its schema and data sources.
- ApolloServerAn open-source library for building server-side GraphQL applications.
- matching branch ruleA matching branch rule is a Pact selection rule that requires provider verification to use a consumer contract from a branch with the corresponding name.
- provider version branchA provider version branch is a Pact configuration associating a provider version with the Git branch from which it was produced.
- verifier interfaceA Pact interface representing a provider and exposing provider-verification functionality for checking it against consumer contracts.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
