O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Hands-On Guide to Spring Cloud Contract: Creating Consumer-Driven Contracts to Leverage Contract Tests and Improve Your Code

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

  • All levels
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

  1. Introduction
    1. Hands-On Guide to Spring Cloud Contract: Introduction 00:02:05
  2. Lesson 1: Introduction to Testing
    1. Learning objectives 00:01:16
    2. 1.1 Learn how to do unit testing 00:10:14
    3. 1.2 Learn what Spring Boot is 00:09:08
    4. 1.3 Test your Spring Boot application 00:05:32
    5. 1.4 Integration test your application 00:05:24
    6. 1.5 Use WireMock for integration testing 00:06:41
    7. 1.6 Test your application with end-to-end tests 00:04:28
    8. 1.7 See why HTTP mocks can lead to a disaster 00:08:25
    9. 1.8 Verify why doing messaging can lead to a disaster 00:13:32
  3. Lesson 2: Making the Sample Fail Fast with Spring Cloud Contract
    1. Learning objectives 00:01:24
    2. 2.1 Know more about Spring Cloud 00:04:35
    3. 2.2 Learn the basics of Spring Cloud Contract 00:08:16
    4. 2.3 Learn what provider contract testing is 00:02:50
    5. 2.4 Test your application with consumer contract tests 00:02:41
    6. 2.5 Drive changes of the API with consumer-driven contract testing 00:04:00
    7. 2.6 Make the HTTP sample fail with contract tests 00:12:08
    8. 2.7 Make the messaging sample fail with contract tests 00:08:42
    9. 2.8 Create stubs of projects that you don't own 00:09:42
  4. Lesson 3: Spring Cloud Contract: Contract Definition
    1. Learning objectives 00:01:20
    2. 3.1 Write an HTTP contract in Groovy 00:07:07
    3. 3.2 Write an HTTP contract in YAML 00:05:03
    4. 3.3 Create a messaging contract in Groovy 00:03:36
    5. 3.4 Create a messaging contract in YAML 00:03:28
    6. 3.5 Define multiple contracts in a single file 00:03:49
    7. 3.6 Set up regular expressions in a Groovy contract 00:08:23
    8. 3.7 Set up regular expressions in a contract via matchers section 00:06:37
    9. 3.8 Execute code on the producer side 00:05:04
  5. Lesson 4: Spring Cloud Contract: Contract Plugin Setup
    1. Learning objectives 00:01:28
    2. 4.1 Learn the basics of SC-Contract Maven Plugin 00:09:22
    3. 4.2 Learn the basics of SC-Contract Gradle Plugin 00:06:15
    4. 4.3 Generate JUnit, JAX-RS and Spock tests 00:07:39
    5. 4.4 Generate tests for WebFlux applications 00:05:56
    6. 4.5 Learn the folder structure for contracts 00:06:41
    7. 4.6 Define base classes with SC-Contract in Maven 00:07:04
    8. 4.7 Define base classes with SC-Contract in Gradle 00:03:45
    9. 4.8 Use SC-Contract without Spring MockMvc 00:05:59
    10. 4.9 Upload stubs to Git 00:07:44
    11. 4.10 Set up SC-Contract for CI 00:11:04
  6. Lesson 5: Spring Cloud Contract: REST Docs and WireMock
    1. Learning objectives 00:01:14
    2. 5.1 Leverage Spring REST Docs to test your API 00:17:57
    3. 5.2 Perform provider contract testing with SC-Contract and Spring REST Docs 00:04:37
    4. 5.3 Generate Contract DSL from Spring REST Docs 00:05:49
    5. 5.4 Generate Spring REST Docs snippets from Contract DSL 00:04:54
    6. 5.5 Test your application with SC-Contract and WireMock 00:09:56
  7. Lesson 6: Spring Cloud Contract: Stub Runner
    1. Learning objectives 00:01:30
    2. 6.1 Learn the basics of SC-Contract Stub Runner 00:04:32
    3. 6.2 Use Stub Runner without Spring via JUnit Rule 00:05:39
    4. 6.3 Fetch stubs from a remote location 00:02:45
    5. 6.4 Fetch stubs from classpath 00:02:53
    6. 6.5 Fetch stubs from local storage 00:01:56
    7. 6.6 Fetch stubs from Git 00:03:15
    8. 6.7 Work with random ports in Stub Runner 00:03:10
    9. 6.8 Leverage stubs per consumer feature to do consumer-driven contract testing 00:03:57
    10. 6.9 Discover SC-Contract Stub Runner Boot 00:08:05
    11. 6.10 Connect Stub Runner with a real service discovery 00:02:54
    12. 6.11 Connect Stub Runner with a real message broker 00:04:11
    13. 6.12 Debug problems with stubs 00:04:14
  8. Lesson 7: Contract Testing with Spring Cloud Contract
    1. Learning objectives 00:01:17
    2. 7.1 Perform provider contract testing with SC-Contract & Maven 00:12:50
    3. 7.2 Perform provider contract testing with SC-Contract & Gradle 00:12:42
    4. 7.3 Do consumer-driven contract testing with contracts on the producer side 00:19:26
    5. 7.4 Do consumer-driven contract testing with contracts in an external repository 00:18:08
    6. 7.5 Do consumer-driven contract testing with contracts in a Git repository 00:17:54
  9. Lesson 8: Spring Cloud Contract with HTTP: Advanced Features
    1. Learning objectives 00:01:05
    2. 8.1 Learn how to reference request from response 00:05:56
    3. 8.2 Set up your code to do asynchronous contracts 00:04:32
    4. 8.3 Work with priorities in contracts 00:04:25
    5. 8.4 Use stateful stubs: Contracts representing scenarios 00:05:07
    6. 8.5 Stub out service discovery 00:04:21
    7. 8.6 Register your own WireMock extension 00:05:24
  10. Lesson 9: Spring Cloud Contract with Messaging
    1. Learning objectives 00:01:14
    2. 9.1 Learn the basics of SC-Contract messaging implementation 00:05:17
    3. 9.2 Learn the basics of Spring AMQP 00:03:55
    4. 9.3 See how SC-Contract integrates with Spring AMQP 00:05:01
    5. 9.4 Discover Spring Integration 00:03:35
    6. 9.5 See how SC-Contract integrates with Spring Integration 00:08:02
    7. 9.6 Learn the basics of Spring Cloud Stream 00:08:16
    8. 9.7 See how SC-Contract integrates with Spring Cloud Stream 00:09:08
    9. 9.8 Learn the basics of Apache Camel 00:04:25
    10. 9.9 See how SC-Contract integrates with Apache Camel 00:07:17
  11. Lesson 10: Spring Cloud Contract: Polyglot
    1. Learning objectives 00:01:02
    2. 10.1 Learn the basics of SC-Contract docker images 00:11:28
    3. 10.2 Use SC-Contract with NodeJS application as a consumer 00:07:25
    4. 10.3 Profit from SC-Contract with NodeJS application as a producer 00:15:20
    5. 10.4 Upload PACT contracts to the broker via SC-Contract 00:10:16
    6. 10.5 Fetch PACT contracts from the broker via SC-Contract 00:05:41
  12. Lesson 11: Extending Spring Cloud Contract
    1. Learning objectives 00:00:48
    2. 11.1 Create a library with shareable code 00:07:01
    3. 11.2 Write a custom Contract Converter 00:11:15
    4. 11.3 Develop a custom Stub Downloader 00:11:59
  13. Summary
    1. Hands-On Guide to Spring Cloud Contract: Summary 00:01:16