■概要
以下の処理を実装し、Junitを使用した単体テストを実装する。
・処理概要
- 入力値が整数かを判定する処理
- 入力値を3倍にして返す処理
・実装概要
- Mavenプロジェクトで作成
■pom.xmlの設定
Junitはバージョン5系を使用するため、pom.xmlに以下の設定を追加する。
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
</dependencies>
■フローチャート
テスト対象のモジュールについて、フローチャートは以下の通り。
・入力値が整数かを判定する処理
・入力値を3倍にして返す処理
■サンプルコード
テスト対象のモジュールおよびJunitのサンプルコードを以下に示す。
・CheckNum3Multiplication.java
package com.unittestsample;
public class CheckNum3Multiplication {
// 入力値が整数かを判定する処理
public Boolean isCheckNumInt(String num) {
// 入力値がnullか否か
if (num == null) {
return false;
}
try {
// 整数判定
Integer.parseInt(num);
} catch (NumberFormatException e) {
System.out.println("例外エラー:" + e);
return false;
}
return true;
}
// 入力値を3倍にして返す処理
public int multipicationThree(String num) {
return Integer.parseInt(num) * 3;
}
}
・CheckNum3MultiplicationTest.java
package com.unittestsample;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class CheckNum3MultiplicationTest{
private CheckNum3Multiplication cn3m;
// コンストラクタ
public CheckNum3MultiplicationTest() {
cn3m = new CheckNum3Multiplication();
}
@BeforeAll
static void setUpBeforeClass() throws Exception {
System.out.println("=====テスト開始=====");
}
@AfterAll
static void tearDownAfterClass() throws Exception {
System.out.println("=====テスト終了=====");
}
@Test
@DisplayName("入力値が整数か判定処理---正常系---")
void isCheckNumIntTest1() {
String input_num = "10";
assertTrue(cn3m.isCheckNumInt(input_num));
}
@Test
@DisplayName("入力値が整数か判定処理---異常系(null)---")
void isCheckNumIntTest2() {
String input_num = null;
assertFalse(cn3m.isCheckNumInt(input_num));
}
@Test
@DisplayName("入力値が整数か判定処理---異常系(整数ではない)---")
void isCheckNumIntTest3() {
String input_num = "11.11";
assertFalse(cn3m.isCheckNumInt(input_num));
}
@Test
@DisplayName("入力値を3倍にして返す処理")
void multipicationThreeTest() {
String input_num = "1";
int ans_num = 3;
assertEquals(cn3m.multipicationThree(input_num), ans_num);
}
}
■実行結果
・コンソール
=====テスト開始=====
例外エラー:java.lang.NumberFormatException: For input string: "11.11"
=====テスト終了=====
・Juni結果
■参考
本処理を作成するにあたり、参考とさせていただいたURLを以下に示す。
コメント