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
https://www.vskills.in/certification/junit-certification-course