JUnit5 で Hello World

JUnit5で最小構成の備忘録。

Java 17
JUnit 5.8.2
eclipse 2021-12
NEW -> Project -> Maven -> Create a simple project.
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>JUnitTest</groupId>
  <artifactId>JUnitTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>JUnitTest</name>
  <description>JUnitTest</description>
  
  <!-- 追加ここから -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>17</source>
          <target>17</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
  <dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.8.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.8.2</version>
        <scope>test</scope>
    </dependency>
   
  </dependencies>
  <!-- 追加ここまで -->
  
</project>  

 

modelVersion

POM のバージョン。

2022/3時点で4.0.0のみサポート。

groupId プロジェクト識別子。
artifactId 作成される JAR や WAR, EAR などのファイル名。
version

プロジェクトのバージョン。

末尾の「SNAPSHOT」は開発中であることを示している。

name プロジェクト名。
description  

テストされるクラス。

package pkg1;

public class HelloWorldJUit5 {
	public String helloWorld() {
		return "Hello World";
	}
}

テストするクラス。
テストメソッド名は「test」から始まる必要がある。

package pkg1;

import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;

public class HelloWorldJUit5Test {
    @Test
    public void testHelloWorld() {
    	HelloWorldJUit5 tester = new HelloWorldJUit5();
    	// 正常系
    	assertEquals("Hello World", tester.helloWorld());
    	// 異常系
    	assertEquals("Morning World", tester.helloWorld());
    }
}

テスト結果。
pom.xmlを右クリックして、debug→maven test

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running pkg1.HelloWorldJUit5Test
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.02 sec <<< FAILURE!
pkg1.HelloWorldJUit5Test.testHelloWorld()  Time elapsed: 0.02 sec  <<< FAILURE!
org.opentest4j.AssertionFailedError: expected: <Morning World> but was: <Hello World>
	at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)
	at org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1141)
	at pkg1.HelloWorldJUit5Test.testHelloWorld(HelloWorldJUit5Test.java:13)


Results :

Failed tests:   pkg1.HelloWorldJUit5Test.testHelloWorld(): expected: <Morning World> but was: <Hello World>

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

投稿日: