「JUnit」Javaのユニットテストのためのフレームワークです。ユニットテストを書くことで正しく動いていることを検証できます。またJenkinsなどのCIツールで定期実行することで、ユニットテストのとおりに動いていることを継続的に保証できます。
🤔 サンプルコード
テスト対象のSample.java
は次のとおりです。
public class Sample { |
上のサンプルに対するJUnitのテストは次のようになります。
import org.junit.Test; |
もし期待する値を返さない場合はつぎのようにテストが失敗します。
java.lang.AssertionError: |
🐡 例外を発生させるテスト:expected
例外エラーを通知したい場合はexpected
オプションをつけて期待する例外を書く。
(expected=IndexOutOfBoundsException.class) |
🐹 事前処理:@Before
、@BeforeClass
@Before
をつけたメソッドは、各テストメソッドを実行する前に都度メソッドを実行します。
|
@BeforeClass
をつけたメソッドはテストを実行する前に一度だけメソッドを実行します。
|
🐰 事後処理:@After
、@AfterClass
@After
を付けたメソッドは、各テストを実行した後に都度メソッドを実行します。
|
@AfterClass
をつけたメソッドは、全テストが完了した後に一度だけメソッドを実行します。
|
👽 テストを構造化させる
(Sample.class) |
🗽 JUnitにおけるテストのルール
- テスト対象のクラス名が「
Xxx
」なら、テストクラス名は「XxxTest
」となる - テスト対象のメソッド名が「
Yyy
」なら、テストメソッド名は「testYyy
」となる - テストメソッドに対してアノテーション「
@Test
」をつける。「public void
」にする - テストメソッドは「
assertThat(実際の値, is(期待値));
」とする - 「前提条件、実行、検証」がわかりやすいコードを記述する
😼 一時的にテストを無視する:@ignore
@Ignore
を付与することで、一時的にテストを無視できます。
|