JavaでのJUnitテストケース:オールインワンの詳細を備えたシンプルなJUnit 5.7.1 HelloWorldチュートリアル
公開: 2019-10-30
JUnitとは何ですか?
JUnitは、繰り返し可能なテストを作成して実行するための、シンプルで強力なオープンソースフレームワークです。 JUnitテストケースが大好きです。 Javaプロジェクトの開発中、私はコードカバレッジのためにJUnitを広く使用しています。 これは、ユニットテストフレームワーク用のxUnitアーキテクチャのインスタンスです。
JUnitの機能は次のとおりです。
- 期待される結果をテストするためのアサーション
- 共通のテストデータを共有するためのテストフィクスチャ
- テストを実行するためのテストランナー
このチュートリアルでは、ポイント1と3について説明します。プロジェクトには、以下のMaven依存関係が必要です。
1 2 3 4 5 |
< dependency > < groupId > junit < / groupId > < artifactId > junit < / artifactId > < version > 4.12 < / version > < / dependency > |
コードを書き始めましょう。
ステップ1
プロジェクトCrunchifyJunitTest
を作成し、パッケージcom.crunchify.junit
を指定します。 クイックリファレンス用のパッケージ構造を次に示します。

ステップ2
CrunchifyJunitTest
=>新しいクラス=> CrunchifyJunitTest.java
を右クリックします
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package com . crunchify . junit ; /** * @author Crunchify * */ import static org . junit . Assert . assertEquals ; import org . junit . Test ; public class CrunchifyJunitTest { @ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 30 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello + World" , helloWorld ( ) ) ; } public int addition ( int x , int y ) { return x + y ; } public String helloWorld ( ) { String helloWorld = "Hello +" + " World" ; return helloWorld ; } } |
ステップ-3
@Testと入力すると、Eclipseはorg.junit.Test
依存関係を提案し、自動的に追加します。

ステップ-4
JUnitテストをテストするには
- クラスを右クリック
- [実行]をクリックします
JUnit Test
をクリックします
このようなものが表示されるはずです。

ステップ-5
メソッドの期待値パラメーターを30 => 300
およびHelloWorld Hello World => Hello -- World
から変更して、もう一度テストしてみてください。
1 2 3 4 5 6 7 8 9 |
@ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 300 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello -- World" , helloWorld ( ) ) ; } |

ステップ-6
次に、 via other java
て同じテストケースを実行しましょう。 CrunchifyRunnerJUnit.java
作成します

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com . crunchify . junit ; import org . junit . runner . JUnitCore ; import org . junit . runner . Result ; import org . junit . runner . notification . Failure ; /** * @author Crunchify * */ public class CrunchifyRunnerJUnit { public static void main ( String [ ] args ) { Result result = JUnitCore . runClasses ( CrunchifyJunitTest . class ) ; for ( Failure failure : result . getFailures ( ) ) { System . out . println ( failure . toString ( ) ) ; } if ( result . wasSuccessful ( ) ) { System . out . println ( "Both Tests finished successfully..." ) ; } } } |
ステップ-7
CrunchifyRunnerJUnit.java
をJava Application
として実行します。
ステップ-8
最初の1st code
(正しい期待されるパラメーター)の場合、次のような出力が表示されます。
1 |
Both Tests finished successfully . . . |
ステップ-9
2nd code
(予期されたパラメーターが正しくない)の場合、次のように表示されます。
1 2 |
testingCrunchifyAddition ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Addition Result : expected : < 300 > but was : < 30 > testingHelloWorld ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Hello World String : expected : < Hello [ -- ] World > but was : < Hello [ + ] World > |
そして、あなたはすべて準備ができています。 このコードの実行で問題が発生した場合はお知らせください。
JUnitテストケースで使用可能なアノテーション:
注釈 | 説明 |
---|---|
@Test public void method() | アノテーション@Testは、メソッドがテストメソッドであることを示します。 |
@Before public void method() | 各テストの前にメソッドを実行します。 このメソッドは、テスト環境を準備できます(たとえば、入力データの読み取り、クラスの初期化)。 |
@public void method()の後 | 各テストの後にメソッドを実行します。 このメソッドは、テスト環境をクリーンアップできます(たとえば、一時データの削除、デフォルトの復元)。 |
@BeforeClass public void method() | すべてのテストを開始する前に、メソッドを1回実行します。 これは、データベースへの接続など、時間のかかるアクティビティを実行するために使用できます。 |
@AfterClass public void method() | すべてのテストが終了した後、メソッドを1回実行します。 これは、データベースから切断するなどのクリーンアップアクティビティを実行するために使用できます。 |
@無視 | テストメソッドを無視します。 これは、基になるコードが変更され、テストケースがまだ適合されていない場合に役立ちます。 または、このテストの実行時間が長すぎて含めることができない場合。 |
@Test(expected = Exception.class) | メソッドが指定された例外をスローしない場合、失敗します。 |
@Test(timeout = 100) | メソッドに100ミリ秒以上かかる場合、失敗します。 |
利用可能なアサートテスト方法:
声明 | 説明 |
---|---|
fail(String) | メソッドを失敗させます。 コードの特定の部分に到達していないことを確認するために使用される場合があります。 または、テストコードを実装する前にテストに失敗すること。 |
assertTrue(true)/ assertTrue(false) | 常にtrue / falseになります。 テストがまだ実装されていない場合は、テスト結果を事前定義するために使用できます。 |
assertTrue([メッセージ]、ブール条件) | ブール条件が真であることを確認します。 |
assertsEquals([文字列メッセージ]、期待、実際) | 2つの値が同じであることをテストします。 注:配列の場合、配列の内容ではなく参照がチェックされます。 |
assertsEquals([文字列メッセージ]、期待される、実際の、許容範囲) | floatまたはdoubleの値が一致することをテストします。 公差は、同じでなければならない小数点以下の桁数です。 |
assertNull([メッセージ]、オブジェクト) | オブジェクトがnullであることを確認します。 |
assertNotNull([メッセージ]、オブジェクト) | オブジェクトがnullでないことを確認します。 |
assertSame([String]、expected、actual) | 両方の変数が同じオブジェクトを参照していることを確認します。 |
assertNotSame([String]、expected、actual) | 両方の変数が異なるオブジェクトを参照していることを確認します。 |