Five-Project Series

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

prerequisites
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
filed under

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.

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.
$29.99 FREE
try now
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.
$29.99 $17.99
add to cart
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.
$29.99 $17.99
add to cart
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.
$29.99 $17.99
add to cart
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.
$29.99 $17.99
add to cart

project author

Max Guernsey, III
Max Guernsey has over twenty years experience in software development. He has worked on a wide range of products and technologies, including C++ class libraries, financial analysis applications, C# and Java backends, and even multiplatform 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 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 will learn

In this liveProject series, you’ll learn to develop tests that fix specific bugs, and that stay in place to guard against regressions.


  • Using IntelliJ IDEA to write and execute tests
  • Deriving tests from existing bugs
  • Codify current behavior as a test
  • Using tests to drive bugfixes
  • Changing tests so they fail until a bug is fixed

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.
includes 5 liveProjects
liveProject $47.99 $79.99 self-paced learning
RECENTLY VIEWED