LoginSignup
5
3

More than 5 years have passed since last update.

【書評】経験ゼロでもできるプログラミング現場の単体テスト(続編その1〜JUnit〜)

Last updated at Posted at 2017-06-03

先日の初めての投稿から数週間、次の投稿をしてみました。
(先日の投稿:http://qiita.com/takumi_links/items/006777e9d5a29221dab0)

こないだ書評した「経験ゼロでもできるプログラミング現場の単体テスト」ですが、個人的に全てのサンプルを動かしてみた訳ではなかったのでイマイチ定着が薄かった…ということで、続編でもう少し単体テストについて掘り下げてみたいと思います。

■ Javaエンジニアのお友達:JUnit

JavaエンジニアにとってJUnitはお友達です。これまで入ったJavaの開発現場では必ず”Eclipse”(Java開発IDE)を使用してきましたが、そのEclipseで使用できるテスティングフレームワーク:JUnit。バージョンは古くなってますが、この本の後ろに”付録”という章がありまして、ここにツール・プラグイン・サンプルのセットアップ手順が書いてあります。現在のEclipseだと、標準でJunitが入ってることが多いかと思います。

<JUnitの仕組み>

① JUnitRunner →  ② テストクラス   →  ③ テスト対象クラス
(テスト実行クラス) (JUnitの機能で作成)  (開発者が作成)
 
①JUnitRunner から ②テストクラス のテストメソッドを呼び出し、そこからテストメソッドが ③テスト対象クラスのメソッドを呼び出して、その戻り値からテストの成否を判定するのがJUnitの仕組み。改めて確認すると…便利なフレームワークだと感心します。

<JUnit4のアノテーションのメモ(防備録用に)>

アノテーション 説明
@Test テストメソッド。JUnitから呼び出される
@Before テストメソッドの前に実行される
@After テストメソッドの後に実行される
@BeforeClass テストクラスを実行し始めた時に1回実行される
@AfterClass テストクラスを実行し終了する時に1回実行される

【テストクラス】
Test1.png

【実行結果】
Test2.png

<JUnit4のメソッド>
※assert = 「〜であるはずだ」

メソッド 説明
assertTrue(Boolean condition) conditionがtrueであれば成功
assertFalse(Boolean condition) conditionがfalseであれば成功
assertEquals(Object expected,Object actual) 期待値と実際値が等しければ成功
assertSame(Object expected,Object actual) 期待値と実際値が等しければ成功
assertNull(Object object) 実際値がNullであれば成功
assertNotNull(Object object) 実際値がNull以外であれば成功
fail() 強制的にテストを失敗にする

評価用メソッドが失敗した時は、AssertionErrorを発生させる。

JUnitも奥が深い。
現場によっては独自テスティングフレームワークがあったりして、純粋なJUnitを組むことから遠ざかっていたので、もう一回初心に戻って勉強しないとなぁとしみじみ。

5
3
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
5
3