Five-Project Series

Unit Testing with Java, JUnit 5, and IntelliJ IDEA you own this product

Java • YAML syntax • Gherkin syntax • Webhooks
skills learned
Drive product design with tests • refurbish legacy code into code using unit tests • build server- and UI-integration tests • retrofit untested systems with unit-, server-, and UI-level tests • build load and performance tests for web applications
Max Guernsey
5 weeks · 8-10 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!


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

It’s a problem almost every developer will face in their career: inheriting an essential legacy library that’s full of bugs and has no automated tests to keep it running smoothly. In this liveProject series, you’ll step into the shoes of a Java developer handling just such a codebase for a stock image web application—one that will soon require significant changes to the library you maintain.

You’ll use JUnit 5 and IntelliJ IDEA to write tests and refactor this buggy code into something both usable and indefinitely maintainable. Each project is focused on a different approach or testing methodology to let you pick and choose which testing techniques to add to your toolbox.

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

liveProject mentor Sachin Rastogi shares what he likes about the Manning liveProject platform.

here's what's included

Project 1 Fix and Test Bugs
In this liveProject, you’ll find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in how certain assets are selected for a special display, then modify the test to turn it into a bugfix. Once you’ve squashed that bug, you’ll repeat the process to tackle two more common bugs for Java applications.
Project 2 Test Legacy Code
In this liveProject, you’ll set up tests to support refactoring of a legacy library. As you lack a written specification, you’ll use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes.
Project 3 Refactor with Tests
In this liveProject, you’ll learn to use a battery of tests to support changing the design of some legacy code in preparation for adding new functionality. You’ll refactor your production code based on advice from your architecture team. Because you have a broad test suite, you will be able to change your design without fear of accidentally breaking a required behavior. The output will be a system that can more easily withstand incoming requirements changes and against which you can write smaller, more meaningful tests.
Project 4 Requirements-Based Tests
In this liveProject, you’ll explore writing high-quality, requirements-based tests against code with a solid design.You will take great care to ensure that each test focuses on a single, isolated behavior within the code. To that end, you’ll use techniques such as mocking to isolate requirements from one another for the purpose of testing. The output of the project is a codebase with a far more resilient test suite that will be able to stand the test of time.
Project 5 Test-First Programming
In this liveProject, you’ll write tests to drive changes in an existing codebase. You’ll analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure new changes to your library are all justified, specified, and protected by tests.

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


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
  • Unit Testing with Java, JUnit 5, and IntelliJ IDEA 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.


This liveProject is for Java developers who want to increase their testing capabilities. To begin this liveProject you will need to be familiar with the following:

  • Basic Java
  • Junit 5


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.