Table of Contents
What is JUnit 5?
JUnit is one of the most popular unit-testing frameworks in the Java ecosystem.
...
JUnit Platform - foundation layer which enables different testing frameworks to be launched on the JVM
Junit Jupiter - is the JUnit 5 test framework which is launched by the JUnit Platform
JUnit Vintage - legacy TestEngine which runs older tests
Requirements:
Note |
---|
JUnit 5 needs already installed to run:
|
...
If you want to know more about JUnit, refer to the official documentation.
Example project structure
This is the basic template:
...
Code Block |
---|
. ├── pom.xml └── src ├── main │ ├── java │ │ └── SourceCodeClass.java │ └── resources └── test └── java └── TestClass.java |
pom.xml
There is pom.xml file, which is config file for our Java project using Maven.
...
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>JUnit5_Overview<</artifactId> <version>1.0-SNAPSHOT</version> // This is depedency that we need to add to usew JUnit5 in our project <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>5.7.2</version> <scope>test</scope> </dependency> </dependencies> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> // This plugins enables running tests from shell <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M1</version> </plugin> </plugins> </build> </project> |
Maven Surefire Plugin is used during the test phase of the build lifecycle to execute the unit tests of an application. It can be used with JUnit, TestNG or other testing frameworks.
By default, the Surefire Plugin will automatically include all test classes with the following wildcard patterns, and execute them as unit tests:
Pattern |
---|
**/Test*.java |
**/*Test.java |
**/*Tests.java |
**/*TestCase.java |
main / test folders
Inside Overview/src
folder you can see two subfolders:
...