JUnit とはJavaで開発されたプログラムにおいてユニットテスト(単体テスト)の自動化を行うためのフレームワークである。
http://junit.org/テストプログラムの作成は以下のように行う。
org.junit.Assertクラスをインポートする。import org.junit.Assert;
    import org.junit.Test;
import org.junit.Before;
import org.junit.After;
    @Testアノテーションを付ける。
    public voidにし、引数なしにする。@Test
public void testCase1() { ... }
    JUnitを用いたテストプログラムの例を示す。
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.JUnitCore;
public class SampleTest {
  @Test
  public void testCase1() {
      String expected = "success";
      String actual   = "success";
      // 期待値と結果が等しい場合はテスト成功
      Assert.assertEquals(expedted, actual);
  }
  @Test
  public void testCase2() {
      String expected = "success";
      String actual   = "failure";
      // 期待値と結果が異なる場合はテスト失敗(例外がスローされる)
      Assert.assertEquals(expedted, actual);
  }
}
  
    テストプログラムの実行方法は、テストクラスを引数に指定して
    org.junit.runner.JUnitCore
    を実行する。
  
java org.junit.runner.JUnitCore testClass1 [testClass2...]
  
    もしくは、テストクラスにmainメソッドを作成し、
    org.junit.runner.JUnitCore.main
    メソッドを呼び出す。
  
public static void main(String[] args) {
  JUnitCore.main(SampleTest.class.getName());
}
  JUnitは次のアノテーションをサポートしている。
| アノテーション | 説明 | 
|---|---|
| @org.junit.Test | テストメソッドを宣言する。 | 
| @org.junit.Before | 各テストメソッドの実行前に呼び出される。 | 
| @org.junit.After | 各テストメソッドの実行後に呼び出される。 | 
| @org.junit.BeforeClass | 各テストクラスの実行前に1度だけ呼び出される。@BeforeClassアノテーションを付けるメソッドはstaticにする必要がある。
         | 
      
| @org.junit.AfterClass | 各テストクラスの実行後に1度だけ呼び出される。@AfterClassアノテーションを付けるメソッドはstaticにする必要がある。
         | 
      
| @org.junit.Ignore | テストメソッドを一時的に無効にする。 | 
| @org.junit.Test(expected) | スローされる予定の例外を宣言する。 | 
| @org.junit.Test(timeout) | テストのタイムアウト時間を宣言する。 | 
public class MyTest
{
  @org.junit.Test
  public void testCase1
  {
      // 処理
  }
}
  import文を使えば、アノテーションを短縮形で記述することができる。
import org.junit.Test;
public class MyTest
{
  @Test
  public void testCase1
  {
      // 処理
  }
}
  import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClass;
@RunWith(Suite.Class)
@SuiteClass({ クラス名.class [, クラス名.class...] })
  テスト結果判定用メソッドは、テストに失敗するとjava.lang.AssertionErrorをスローする。
    | メソッド | 説明 | 
|---|---|
| assertEquals | 期待値と実行結果が等しい場合、テスト成功 | 
| assertArrayEquals | 期待値と実行結果が等しい場合、テスト成功 | 
| assertThat | 実行結果が指定した条件を満たせば、テストが成功 | 
| assertNotNull | オブジェクトがnull以外の場合、テスト成功 | 
| assertNull | オブジェクトがnullの場合、テスト成功 | 
| assertSame | オブジェクトが同一の場合、テスト成功 | 
| assertNotSame | オブジェクトが不一致の場合、テスト成功 | 
            static void assertTrue(boolean
            cond
            )
           | 
        condがtrueの場合、テスト成功 | 
            static void assertFalse(boolean
            cond
            )
           | 
        condがfalseの場合、テスト成功 | 
static void fail() | 
        常にテスト失敗 | 
期待値(expected)と実行結果(actual)が等しい場合、テストが成功する。
static void assertEquals(double expected, double actual)
  static void assertEquals(long expected, long actual)
  static void assertEquals(java.lang.Object expected, java.lang.Object actual)
  期待値(expected)と実行結果(actual)が等しい場合、テストが成功する。
static void assertArrayEquals(byte[] expected, byte[] actual)
  static void assertArrayEquals(char[] expected, char[] actual)
  static void assertArrayEquals(int[] expected, int[] actual)
  static void assertArrayEquals(long[] expected, long[] actual)
  static void assertArrayEquals(java.lang.Object[] expected, java.lang.Object[] actual)
  static void assertArrayEquals(short[] expected, short[] actual)
  実行結果(actual)が指定した条件(matcher)を満たせば、テストが成功する。
static void assertThat(T actual, org.hamcrest.Matcher<T> matcher)
  オブジェクトがnull以外の場合、テストが成功する。
static void assertNotNull(Object obj)
  オブジェクトがnullの場合、テストが成功する。
static void assertNull(Object obj)
  オブジェクトが同一の場合、テストが成功する。
static void assertSame(Object expected, Object actual)
  オブジェクトが不一致の場合、テストが成功する。
static void assertNotSame(Object expected, Object actual)
  
    | メソッド | 説明 | 
|---|---|
            static <
            T
            > org.hamcrest.Matcher<
            T
            > is(
            T
            value
            )
           | 
        valueと一致すれば真を返す。 | 
JUnit (2016) Assert (JUnit API) JUnit 4.13.2 API