トッカンソフトウェア

JUnit 5 基本

今回は、JUnit5の基本をやります


単純なテストの作成

pom.xml


<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>TestMvn</groupId>
	<artifactId>TestMvn</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<java.version>11</java.version>
		<maven.compiler.target>${java.version}</maven.compiler.target>
		<maven.compiler.source>${java.version}</maven.compiler.source>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter</artifactId>
			<version>5.12.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

java


package test;

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

import org.junit.jupiter.api.Test;

class SampleTest {

	@Test
	void test() {

		int i = 1 + 2;
		assertEquals(3, i);
	}

}

@Testがテスト対象メソッドになります。
assertEqualsで処理結果が等しいかチェックします。

Eclipseのプロジェクトイメージ


src/main/javaの下ではなく、src/test/javaの下にソースが置かれるようにします。

チェックメソッド

メソッドチェック内容
assertTrueTrue?
assertFalseFalse?
assertEquals等しい?
assertNotEquals等しくない?
assertArrayEquals配列を比較
assertIterableEqualsListを比較
assertLinesMatchListを比較。正規表現を使える
assertThrows例外は発生するか?
assertTimeout時間内で処理できるか?
assertTimeoutPreemptively時間内で処理できるか?指定時間で即終了
assertNullNull?
assertNotNullNot Null?

アノテーション

アノテーション動作
@Testテスト対象メソッドにする
@BeforeEachテスト前に毎回呼び出される
@AfterEachテスト後に毎回呼び出される
@BeforeAll全てのテスト前に1回だけ呼び出される
@AfterAll全てのテスト後に1回だけ呼び出される
@Disabledテスト対象から外す
@ParameterizedTestテスト時の引数指定
@RepeatedTestテストを指定回数実施
@DisplayNameテスト結果表示の表示指定
@Nestedテスト結果表示の階層
@Tagテストのグループ分け


ページのトップへ戻る