Four-Project Series

API Integration Testing with Spring Framework you own this product

prerequisites
intermediate JUnit5 • intermediate Spring • beginner Maven • beginner Hibernate • basic Java programming • basic object-oriented design • working knowledge of Java 11 • working knowledge of object-oriented programming
skills learned
use IntelliJ IDEA to write and execute tests • reproduce problems in hard-to-reach parts of a system with tests • use tests to drive fixes for bugs • mock various types of external services • test how multiple Spring services integrate
Max Guernsey, III
4 weeks · 7-9 hours per week average · INTERMEDIATE

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and it’s been having problems, despite successful unit testing.

Working in IntelliJ IDEA and the Spring framework, you’ll build an integration test that replicates an otherwise unreproducible problem. You’ll also mock an external service to address and prevent problems related to external dependencies. Finally, you’ll use integration testing to connect and run two services together to address problems that only occur when they’re combined. When you’ve completed this series, you’ll have an integration testing strategy that goes well beyond the capabilities of unit tests for ensuring the stability of your code.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

here's what's included

Project 1 Fix the Persistence Layer

You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and a recent database change has broken the service, despite successful unit testing. Working in IntelliJ IDEA, you’ll build an integration test that replicates the problem, find the cause, fix the problem, and build the infrastructure to develop more integration tests in the future.

Project 2 Stop Misuse of a Library

Create an alarm system that warns you before your system breaks. You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images. A recent upgrade to the image scaling library has caused a problem with the aspect ratio of thumbnail images. Working in IntelliJ IDEA, you’ll build a layer of integration tests that replicates the problem and also tests assumptions that your unit tests rely on. When you’re done, you’ll have an alarm system that warns you when the assumptions your unit tests rely on are no longer valid, preventing problems in the future.

Project 3 Mock an External Service

Ensure your system can accommodate even unstable dependency services. You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images. Unfortunately, the ingestion process is being negatively affected by a flaky external web service that the ingestion engine uses, and the problem is not reproducible in unit testing since there’s no connection to the external service at that time. Working in IntelliJ IDEA, you’ll establish an in-memory HTTP service, configure it to simulate a dependency service, write a test to reproduce the error, and use the test to build robustness into your system.

Project 4 Kill Bugs Between Services

You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and this service depends on another subservice: the pricing microservice. As proven by their individual unit tests, each service works as specified. But when the services are combined, new customers are being locked into one pricing table—even those that should have access to pricing that fluctuates depending on factors like promotions, flash sales, and price-tuning. Working in IntelliJ IDEA, you’ll solve this problem by writing an integration test that connects and runs the two services together, allowing you to reproduce the problem locally.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • API Integration Testing with Spring Framework project for free

project author

Max Guernsey, III

Max Guernsey has over twenty years of experience in software development and is currently a managing member at DevCraft LLC. He has worked on a wide range of products and technologies, including C++ class libraries, financial analysis applications, C# and Java backends, and even multi-platform video games. He is an experienced consultant and his "coaching from the keyboard" approach provides hands-on experience to learners in all aspects of modern software development.

Prerequisites

This liveProject series is for developers with a beginner-level understanding of Java and object-oriented design. To begin these liveProjects you’ll need to be familiar with the following:

TOOLS
  • JUnit5
  • Spring
  • Maven
  • Hibernate
TECHNIQUES
  • Basic Java programming
  • Basic object-oriented design
  • Working knowledge of Java 11
  • Working knowledge of object-oriented programming

you will learn

In this liveProject series, you’ll learn to build and apply integration tests that go beyond the capabilities of unit tests for finding and preventing problems.

  • Use IntelliJ IDEA to write and execute tests
  • Reproduce problems in hard-to-reach parts of a system with tests
  • Use tests to drive fixes for bugs
  • Mock S3 containers
  • Dynamically configure Spring containers
  • Mock an HTTP service dependency
  • Use Hibernate and an in-memory database to inspect the results of service execution
  • Create in-memory Spring applications

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.