Junit Certification Table of Contents

Table of Content


Unit Testing Basics

  • What is Unit Testing?
  • What is JUnit?
  • Introducing a Simple Unit Test in JUnit
  • Structure of a Unit Test (Arrange-Act-Assert and Given/When/Then)
  • Conventions for Writing Unit Tests
  • Characteristics of Proper Unit Tests
  • What are Assertions?

Creating a Java Project Using JUnit

  • Creating a Java Project Using the Maven Quickstart Archetype in JUnit
  • Introducing a Typical Java Project Structure (Production vs Test Source Trees)
  • Understanding the Basic Conventions for Creating Unit Tests (Package and Naming)

Writing and Running Unit Tests with JUnit and IntelliJ IDEA

  • Creating a Test Method with @Test Annotation
  • Running a Unit Test Within the Integrated Development Environment (IDE) and Understanding Test Success
  • Understanding Test Failures with Exceptions
  • Failing a Unit Test Explicitly with Assert.Fail()
  • Using Assert.Fail() to Check Validation Logic in a Try/Catch
  • Introduction to the JUnit Assertions API
  • Structuring Unit Tests with Arrange-Act Assert
  • Understanding the Execution of Assertions and JUnit's Fail-fast Test Failure Mechanism
  • Adding Descriptive Comments to Assertions and Test Failures to Aid Diagnostics
  • Coding a Unit Test Following Arrange-Act-Assert
  • Keeping Test Setup (Don't Repeat Yourself) DRY with @Before
  • Understanding Test Fixture Instantiation

Using Testing with Mock Objects and Mockito

  • What Is Mockito and What Are Mock Objects?
  • Introduction to Testing with Mock Objects
  • Configuring Projects Using Mockito
  • Creating a Project Which Uses JUnit and Mockito
  • Coding a Layered Architecture - Presentation Layer
  • Coding a Layered Architecture - Business Layer
  • Coding a Layered Architecture - Persistence Layer
  • Putting the Correct Packages in Place to Respect the layering
  • Writing a Test for the Login Controller in the Presentation Layer
  • Understanding the Test Fixture Setup While Writing Mock Object-based Unit Tests
  • Writing a Test for the Authentication Service in the Business Layer
  • Thinking about Design Decisions When Unit Testing

Hamcrest Assertions Library

  • Evolving the Domain and Repository Classes
  • Ignoring Tests with @ignore
  • Implementing a Finder in the Repository
  • Implementing Business Logic in the Service
  • Configuring Maven to Use Java 8
  • Evolving the Repository Class
  • Adding a Parameter-driven Finder to the Service
  • Refactoring to Evolve a New Service
  • Generating Test Methods in the IDE and Toggling Between Production and Test Code
  • Introducing the JUnit Mockito Runner and @Mock
  • Analyzing the Production Code to Determine How to Write the Arrange Section
  • Using Mockito's @InjectMocks to Create the System Under Test with its Dependencies
  • Keep Yourself Motivated by Checking the Happy Path Test Output
  • Using the JUnit Assertions API to Write the Assert Section
  • Thinking about the Weaknesses of the JUnit Assertions API
  • Importance of Checking Your Work as You Go!
  • Upgrading a JUnit Project to Use the Full Hamcrest Version
  • Replacing JUnit Assertions with Hamcrest Assertions and Using Assertions with Collections
  • Understanding and Reading Hamcrest Test Failures
  • Quick Thoughts on Hamcrest Individual vs Collection Assertions
  • Do Not Invoke Unneeded Production Code in Your Test Classes
  • Understanding Evaluation of Hamcrest Matchers
  • Thinking about Keeping Production Code to a Minimum in Tests
  • Creating Complex Hamcrest Assertions with allOf Method and Property Matchers

Apply for Certification


 For Support