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