配属先で初めて出会ったJUnit。大苦戦し先輩方にたくさんお世話になりました。。
よく利用するけど「この確認のときに使っていたアレなんだっけ......」となることが今でも多いので、個人メモ程度にまとめる。
- assertNull()
- 確認したい値がNullであるかチェックするためのもの。
- Nullだった場合、通過し、Nullじゃなかった場合、通過できない(確か「実行したらNullじゃなかったよ」みたいなエラー文言が出た気がする。。)
- 書き方例:assertNull(piyo);
- assertNotNull()
- assertNullの逆。
- Nullじゃないことを確認できる。
- 返す値がbooleanのメソッドの確認短縮方法
- 以下のように記載すれば簡単に確認できる。わざわざ変数を作る必要が無い。
- assertThat(hogeClass.booleanMethod(stringPiyo), is(true));
- 以下のように記載すれば簡単に確認できる。わざわざ変数を作る必要が無い。
- doNothing()
- doReturn()
- fail()
- tryCatchを利用したテストを作るときに利用。
-
書き方例
/** エラーを検出せず、想定した値が返ってくるパターン */ try { String piyo = testLogic.testMethod(true); assetThat(piyo, is("piyopiyo"); } catch (SystemException e) { fail(); }
-
書き方例2
/** エラーを検知し、catchに移ることの確認パターン */ try { String piyo = testLogic.testMethod(true); fail(); } catch (SystemException e) { assetThat(e.getMessage(), is("piyopiyo"); }
- ただ、tryCatchしたテストを実行した場合、fail()側に到達するとエラーが分からないことがある。そんな時は一度tryCatchをコメントアウトして、JUnit実行するとエラー箇所を把握できる。
JUnitの注意点
- privateなメソッドはPowerMockを利用すれば返却値を設定できる。
- PowerMockは便利だけど、カバレッジ実行時はすべて赤に染まって分岐が目で見えなくなる。。(緑表示が無くなる)