読者です 読者をやめる 読者になる 読者になる

メンチカツには醤油でしょ!!

ITエンジニア徒然 (AWS/Java/JavaScript/Google Spreadsheets/Jenkins/Mac/外部コミュニティ・勉強会レポ)

JUnit 4系の書き方がJUnit 3以前と違いすぎてビックリした件

Java

いや〜ビビった。知らないとヤバい。

最初テストを3系で書いててMavendependencyを変えて4.10にしたんだけど
アノテーション付けるだけじゃダメでちょっと悩んだので、メモ。

アノテーション付けるだけじゃ動かないんだよ!」

 

ポイントはこんな感じでしょうか。
・TestCaseをextendsしてはダメ。
 stack overflowに書いてあった。マジか。
アノテーションはimportする必要があるので、Command(Ctrl) + Shift + O
・setUp() メソッドは@Overrideではなく @Before アノテーションを付けてメソッド命名自由。アクセス修飾子は protected⇒public に。
・tearDown() も⇒ @After で同じ。
・テスト実行メソッドは test***() 命名から解放され、@Test アノテーション付加。
・fail() とかは Assert.fail() と書く。import static org.junit.Assert.*; すれば同じ。
・assertEquals() じゃなくて、assertThat(obj1, is(obj2)) を使用する(?)
・expectedクラスでExceptionの発生を異常系として定義できる。
 例: @Test(expected = NullPointerException.class)
 これは"できること"に入るかな。
・自分のテストメソッドの命名を取得する場合は今までは getName() だったが、
@Rule
public TestName name= new TestName(); // メンバ変数名任意
とメンバー宣言してから、name.getMethodName(); より取得する。
(恐らく他にも色々取れる)
 

まだありそうだけど、後で。
⇒⇒・・・と、ぼんやり思ってたらもちろん先人が居たw
JUnitメモ(Hishidama's JUnit Memo)
http://www.ne.jp/asahi/hishidama/home/tech/java/junit.html

 

そんな感じっす。