Contents
JUnit
A programmer-oriented testing framework for Java.
Annotations
- @Before , public void setUp(){} // runned before each test
- @Test , public void textAbc(){} // test itself
- @After , public void tearDown(){} // runned before each test
- @Ignore, @Ignore("Not yet implemented")
Imports
Inclusion classes
http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html
By default, the Surefire Plugin will automatically include all test classes with the following wildcard patterns: "**/Test*.java" - includes all of its subdirectories and all java filenames that start with "Test". "**/*Test.java" - includes all of its subdirectories and all java filenames that end with "Test". "**/*TestCase.java" - includes all of its subdirectories and all java filenames that end with "TestCase".
Plugin configuration in pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/Test*.java</include>
<include>**/*Test.java</include>
<include>**/*TestCase.java</include>
</includes>
</configuration>
</plugin>
Import methods
Maven dependency
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency> On a Maven project the tests may be located inside /src/test/java/ so they are integrated in the main artifact generated by Maven.
Sample project junitSample1
1 cd ~
2 mkdir junitSample1
3 cd junitSample1/
4 nano pom.xml
5 mkdir -p src/main/java/org/allowed/bitarus/junitSample1
6 mkdir -p src/test/java/org/allowed/bitarus/junitSample1
7 nano src/main/java/org/allowed/bitarus/junitSample1/OddEven.java
8 nano src/test/java/org/allowed/bitarus/junitSample1/TestOddEven.java
9 mvn clean compile test
10 mvn -Dtest=TestOddEven#testEven1 test # only run testEven1
11
Structure:
. |-- pom.xml |-- src | |-- main | | `-- java | | `-- org | | `-- allowed | | `-- bitarus | | `-- junitSample1 | | `-- OddEven.java | `-- test | `-- java | `-- org | `-- allowed | `-- bitarus | `-- junitSample1 | `-- TestOddEven.java
pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 <modelVersion>4.0.0</modelVersion>
4 <groupId>org.allowed.bitarus</groupId>
5 <artifactId>junitSample1</artifactId>
6 <version>0.0.1</version>
7 <packaging>jar</packaging>
8 <dependencies>
9 <dependency>
10 <groupId>junit</groupId>
11 <artifactId>junit</artifactId>
12 <version>4.11</version>
13 <scope>test</scope>
14 </dependency>
15 </dependencies>
16 </project>
OddEven.java
1 // src/main/java/org/allowed/bitarus/junitSample1/OddEven.java
2 package org.allowed.bitarus.junitSample1;
3
4 public class OddEven
5 {
6 public static boolean isOdd(int value){
7 if( value % 2 == 0) return false;
8 else return true;
9
10 }
11
12 public static boolean isEven(int value){
13 //if( value % 2 == 0) return true;
14 //else return false;
15 throw new UnsupportedOperationException();
16 }
17 }
TestOddEven.java
1 // src/test/java/org/allowed/bitarus/junitSample1/TestOddEven.java
2 package org.allowed.bitarus.junitSample1.tests;
3 import org.allowed.bitarus.junitSample1.OddEven;
4
5 import static org.junit.Assert.assertEquals;
6 import org.junit.Test;
7 import org.junit.Ignore;
8 import org.junit.runner.RunWith;
9 import org.junit.runners.JUnit4;
10
11 public class TestOddEven{
12 @Test
13 public void testOdd1(){
14 assertEquals( OddEven.isOdd(1) , true );
15 assertEquals( OddEven.isOdd(4) , false );
16 }
17
18 @Test
19 public void testEven1(){
20 assertEquals( OddEven.isEven(4) , true );
21 assertEquals( OddEven.isEven(1) , false );
22 }
23 }
JUnit6 + JaCoCo - junitSample2
Steps
pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 <modelVersion>4.0.0</modelVersion>
4 <groupId>org.bitarus</groupId>
5 <artifactId>junitSample2</artifactId>
6 <version>0.0.2</version>
7 <packaging>jar</packaging>
8 <properties>
9 <maven.compiler.target>1.8</maven.compiler.target>
10 <maven.compiler.source>1.8</maven.compiler.source>
11 </properties>
12 <dependencies>
13 <dependency>
14 <groupId>org.junit.jupiter</groupId>
15 <artifactId>junit-jupiter-engine</artifactId>
16 <version>6.0.2</version>
17 <scope>test</scope>
18 </dependency>
19 </dependencies>
20 <build>
21 <plugins>
22 <plugin>
23 <groupId>org.jacoco</groupId>
24 <artifactId>jacoco-maven-plugin</artifactId>
25 <version>0.8.14</version>
26 <executions>
27 <execution>
28 <goals>
29 <goal>prepare-agent</goal>
30 </goals>
31 </execution>
32 <execution>
33 <id>report</id>
34 <phase>prepare-package</phase>
35 <goals>
36 <goal>report</goal>
37 </goals>
38 </execution>
39 </executions>
40 </plugin>
41 </plugins>
42 </build>
43 </project>
OddEven.java
1 // src/main/java/org/bitarus/junitSample2/OddEven.java
2 package org.bitarus.junitSample2;
3
4 public class OddEven
5 {
6 public static boolean isOdd(int value){
7 if( value % 2 == 0) return false;
8 else return true;
9 }
10
11 public static boolean isEven(int value){
12 if( value % 2 == 0) return true;
13 else return false;
14 //throw new UnsupportedOperationException();
15 }
16 }
TestOddEven.java
1 // src/test/java/org/bitarus/junitSample2/TestOddEven.java
2 package org.bitarus.junitSample2.tests;
3 import org.bitarus.junitSample2.OddEven;
4
5 import static org.junit.jupiter.api.Assertions.assertEquals;
6 import org.junit.jupiter.api.Test;
7
8 public class TestOddEven{
9 @Test
10 public void testOdd1(){
11 assertEquals( OddEven.isOdd(1) , true );
12 assertEquals( OddEven.isOdd(4) , false );
13 }
14
15 @Test
16 public void testEven1(){
17 assertEquals( true, OddEven.isEven(4) );
18 assertEquals( OddEven.isEven(1) , false );
19 }
20 }
