Video description
9+ Hours of Video Instruction
Developers need confidence when pushing new features to a new application or service in a distributed system. Contract testing is a technique that lets developers catch issues early at application build time. Thanks to such testing, you can apply the fail fast approach and break the build if there’s an issue, all in the hopes of easing continuous delivery and deployment. With the tips in this video, developers can learn to catch issues early, and avoid the need to run heavy and costly integration tests.
Description
This 9+ hour LiveLesson video course teaches developers how to apply the provider and consumer-driven contract testing approaches, for Spring and non-Spring based applications, with Spring Cloud Contract. There is coverage of JVM and non-JVM services, as Spring Cloud Contract can be used in a polyglot environment.
The lessons cover building JVM and non-JVM applications, leveraging contract tests to drive the change of the API, as well as performing the provider and consumer-driven contract tests. In addition, developers learn how to use Spring Cloud Contract to verify whether current testing customs are correct, leverage Spring Cloud Contract Stub Runner to automatically fetch and run stubs, and use Docker to generate and test non-JVM based applications.
The supporting code for this LiveLesson is located at http://www.informit.com/store/hands-on-guide-to-spring-cloud-contract-livelessons-9780135598412.
About the Instructor
Marcin Grzejszczak is a software engineer at Pivotal. He has written two books, Mockito Instant and Mockito Cookbook and co-authored the Applied Continuous Delivery LiveLessons with Josh Long. Marcin is co-founder of the Warsaw Cloud Native meetup. He is currently working as lead of the Spring Cloud Sleuth, Spring Cloud Contract, and Spring Cloud Pipelines projects.
Twitter: @mgrzejszczak
Skill Level
What You Will Learn- Build JVM and non-JVM applications whose HTTP and messaging communication get tested
- Leverage contract tests to drive the change of the API
- Perform the provider and consumer-driven contract tests
- Perform Contract Tests against polyglot applications
- Set up advanced features of Spring Cloud Contract
- Integrate with PACT broker
- Use Spring Cloud Contract to verify whether your current testing customs are correct
- Leverage Spring Cloud Contract Stub Runner to automatically fetch and run stubs
- Use Docker to generate and test non JVM based applications
Who Should Take This Course- Front-end developers who want to evolve the back-end API without filing tickets and waiting for them to be processed
- Back-end developers who want to know who is using their API and how
- Testers who want to automate and increase the reliability of integration tests
- Product managers who want to spend less money on end-to-end testing and catch bugs earlier in the process
Course Requirements
Primary:
- Basic Java knowledge (for the Java-based lessons)
- Basic YML understanding (for the non-JVM lessons)
Nice to have:
- Basic understanding of Spring Boot
- Basic understanding of Docker
About Pearson Video Training
Pearson publishes expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. These professional and personal technology videos feature world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, Pearson IT Certification, Prentice Hall, Sams, and Que Topics include: IT Certification, Network Security, Cisco Technology, Programming, Web Development, Mobile Development, and more. Learn more about Pearson Video training at http://www.informit.com/video
.
Table of Contents
Introduction
Hands-On Guide to Spring Cloud Contract: Introduction
Lesson 1: Introduction to Testing
Learning objectives
1.1 Learn how to do unit testing
1.2 Learn what Spring Boot is
1.3 Test your Spring Boot application
1.4 Integration test your application
1.5 Use WireMock for integration testing
1.6 Test your application with end-to-end tests
1.7 See why HTTP mocks can lead to a disaster
1.8 Verify why doing messaging can lead to a disaster
Lesson 2: Making the Sample Fail Fast with Spring Cloud Contract
Learning objectives
2.1 Know more about Spring Cloud
2.2 Learn the basics of Spring Cloud Contract
2.3 Learn what provider contract testing is
2.4 Test your application with consumer contract tests
2.5 Drive changes of the API with consumer-driven contract testing
2.6 Make the HTTP sample fail with contract tests
2.7 Make the messaging sample fail with contract tests
2.8 Create stubs of projects that you don’t own
Lesson 3: Spring Cloud Contract: Contract Definition
Learning objectives
3.1 Write an HTTP contract in Groovy
3.2 Write an HTTP contract in YAML
3.3 Create a messaging contract in Groovy
3.4 Create a messaging contract in YAML
3.5 Define multiple contracts in a single file
3.6 Set up regular expressions in a Groovy contract
3.7 Set up regular expressions in a contract via matchers section
3.8 Execute code on the producer side
Lesson 4: Spring Cloud Contract: Contract Plugin Setup
Learning objectives
4.1 Learn the basics of SC-Contract Maven Plugin
4.2 Learn the basics of SC-Contract Gradle Plugin
4.3 Generate JUnit, JAX-RS and Spock tests
4.4 Generate tests for WebFlux applications
4.5 Learn the folder structure for contracts
4.6 Define base classes with SC-Contract in Maven
4.7 Define base classes with SC-Contract in Gradle
4.8 Use SC-Contract without Spring MockMvc
4.9 Upload stubs to Git
4.10 Set up SC-Contract for CI
Lesson 5: Spring Cloud Contract: REST Docs and WireMock
Learning objectives
5.1 Leverage Spring REST Docs to test your API
5.2 Perform provider contract testing with SC-Contract and Spring REST Docs
5.3 Generate Contract DSL from Spring REST Docs
5.4 Generate Spring REST Docs snippets from Contract DSL
5.5 Test your application with SC-Contract and WireMock
Lesson 6: Spring Cloud Contract: Stub Runner
Learning objectives
6.1 Learn the basics of SC-Contract Stub Runner
6.2 Use Stub Runner without Spring via JUnit Rule
6.3 Fetch stubs from a remote location
6.4 Fetch stubs from classpath
6.5 Fetch stubs from local storage
6.6 Fetch stubs from Git
6.7 Work with random ports in Stub Runner
6.8 Leverage stubs per consumer feature to do consumer-driven contract testing
6.9 Discover SC-Contract Stub Runner Boot
6.10 Connect Stub Runner with a real service discovery
6.11 Connect Stub Runner with a real message broker
6.12 Debug problems with stubs
Lesson 7: Contract Testing with Spring Cloud Contract
Learning objectives
7.1 Perform provider contract testing with SC-Contract Maven
7.2 Perform provider contract testing with SC-Contract Gradle
7.3 Do consumer-driven contract testing with contracts on the producer side
7.4 Do consumer-driven contract testing with contracts in an external repository
7.5 Do consumer-driven contract testing with contracts in a Git repository
Lesson 8: Spring Cloud Contract with HTTP: Advanced Features
Learning objectives
8.1 Learn how to reference request from response
8.2 Set up your code to do asynchronous contracts
8.3 Work with priorities in contracts
8.4 Use stateful stubs: Contracts representing scenarios
8.5 Stub out service discovery
8.6 Register your own WireMock extension
Lesson 9: Spring Cloud Contract with Messaging
Learning objectives
9.1 Learn the basics of SC-Contract messaging implementation
9.2 Learn the basics of Spring AMQP
9.3 See how SC-Contract integrates with Spring AMQP
9.4 Discover Spring Integration
9.5 See how SC-Contract integrates with Spring Integration
9.6 Learn the basics of Spring Cloud Stream
9.7 See how SC-Contract integrates with Spring Cloud Stream
9.8 Learn the basics of Apache Camel
9.9 See how SC-Contract integrates with Apache Camel
Lesson 10: Spring Cloud Contract: Polyglot
Learning objectives
10.1 Learn the basics of SC-Contract docker images
10.2 Use SC-Contract with NodeJS application as a consumer
10.3 Profit from SC-Contract with NodeJS application as a producer
10.4 Upload PACT contracts to the broker via SC-Contract
10.5 Fetch PACT contracts from the broker via SC-Contract
Lesson 11: Extending Spring Cloud Contract
Learning objectives
11.1 Create a library with shareable code
11.2 Write a custom Contract Converter
11.3 Develop a custom Stub Downloader
Summary
Hands-On Guide to Spring Cloud Contract: Summary