0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

超入門 JUnitでテストをしよう

Posted at

JUnitとはなんでしょうか

プログラム作成後単体テストをするのはとても大変です。
そんなときに楽にできるツールとして、JUnitがあります。
Javaのプログラムにおける単体テスト(ユニットテスト)を行うためのフレームワークになります。

Javaアプリケーションのコードが正しく動作しているか?を自動的にテストするために利用され、多くのJavaのプログラムに使われています。

なぜJUnitを使うのか?

自動化されたテストで行える

Junitを使うと、コードを手動でテストする必要がなく、テストシナリオを書き、ボタンを押すことで大量のテストを行うことができます。
これによって、開発者のテストをする時間を大幅に省けて、時間を短縮することができます。

バグの早期発見

コードを小さな部分に分割してテストができます。
バグを早期に発見、修正がしやすい形となっています。

回帰テスト

アプリケーションのアップデートをしても、既存の機能が壊れていないのか?確認するために便利です。

品質の向上

テストを自動化することで、品質の高いソフトウェアを効率よく開発すること可能です。

JUnitのテストシナリオ書き方

アノテーションを使って記述する

アノテーション名 説明
@Test テストメソッドを示します
@BeforeEach 各テストの前に実行するメソッドを示します
@AftereEach 各テストのあとに実行するメソッドを示します
@BeforeAll 全テストの前に一度だけ実行されるメソッドを示します
@AfterAll 全テストのあとに一度だけ実行されるメソッドを示します

アサーションの説明

アサーションとは、Jnitで期待する結果と実際の結果を比較するためにアサーション(assertion)を使います。

以下はよく使われるアサーションになります。

アサーション名 説明
assertEquals(excepted,actual) 期待する値と実際の値が等しいかを確認します
assertTrue(condition) 条件が真であるかを確認します
assertFalse(condition) 条件が偽であるかを確認します
assertNull(object) オブジェクトがnullであるかを確認します
assertNotNull(object) オブジェクトがnullでないかを確認します

テストの実行例

テストの手法を記述していきます。

まずは普通のプログラムソース


public class Calculator {

    Calculator() {
    }

    public int add(one,two) {
        return one + two;
    }
}

このソースに対して足し算ができるかのテストケースを書きます。


import static org.junit.Assert.*;

import org.junit.Test;

public class CalculatorTest {
	
	@Test
	public void test() {
		
		// 正解の値を記述
		int expected = 3;
		
		//インスタンス作成
		cal Calculator = new Calculator();
		
		int actual = j042i.cal(2,1);
        
		// 足し算が正しいか?の値を記述する
		assertEquals(expected, actual);
	}

}

このコードではCalculatorのクラスのaddメソッドが正しく動作しているかをテストします。
assetEqulalsで2と1を足した結果が3であることを確認できます。

JUnitを使用する方法

テスト駆動開発(TDD)でJUnitを使うとTDD(Test0Driven Development)が効果的に行えます。
最初にテストを牡蠣、その後にコードを書いてテストが成功するように開発を進めます。

カバレッジの確認方法

JUnitのテストだけではなく、テストがコード全体をどれだけカバーしているか、カバレッジも確認することが重要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?