Junit 4の新しいアサーションassertThatの使い方

3591 ワード

1.JUnit4.4 Hamcrestフレームワークを導入し、Hamcestは自然言語に近く、可読性が高く、柔軟なマッチングマッチMatcherのセットを提供した.
2.新しい断言構文を使用する:assertThatは、Hamcestが提供するマッチング記号と組み合わせて、この方法だけで、すべてのテストを実現することができます.
3.assertThatの文法は以下の通りである:assertThat(T actual,Matcher matcher);  assertThat(String reason, T actual, Matcher matcher); ここで、actualはテストが必要な変数であり、matcherはHamcrestの一致子を用いて変数actualの所望値を表現する宣言である.
assertThat(5, is(add(2, 3)))
一般整合子1、assertThat(testedNumber,allOf(greaterThan(8)、lessThan(16)));注記:allOfマッチングは、次のすべての条件がテストに合格しなければならないことを示しています.これは、「与」(&)2、assertThat(testedNumber,anyof(greaterThan(16)、lessThan(8))に相当します.注記:anyofマッチングは、次のすべての条件が1つ成立すればテストに合格することを示し、「または」(|)3、assertThat(testedNumber、anything()に相当する.注記:anythingマッチングは、どの条件でもtrue 4、assertThat(testedString,is(「developerWorks」)であることを示します.注記:isマッチングは、前に測定されたobjectが後に与えられたobjectに等しい場合、テストが5、assertThat(testedString,not(「developerWorks」)に合格することを示します.注記:not整合子とis整合子は正反対で、前に測定されるobjectが後に与えられるobjectと等しくない場合、テストは文字列関連整合子1、assertThat(testedString、containsString(「developerWorks」)に合格することを示します.注記:containsStringマッチングは、テスト文字列testedStringにサブ文字列「developerWorks」が含まれている場合、テストが2、assertThat(testedString,endsWith(「developerWorks」)に合格したことを示します.注記:endsWithマッチングは、テスト文字列testedStringがサブ文字列「developerWorks」で終わると、テストが3、assertThat(testedString、startsWith(「developerWorks」)に合格することを示します.注記:startsWithマッチングは、テスト文字列testedStringがサブ文字列「developerWorks」で開始された場合、テストが4、assertThat(testedValue,equalTo(expectedValue))に合格したことを示します.注記:equalToマッチングは、テストのtestedValueがexpectedValueに等しい場合にテストに合格することを示します.equalToは、Objectのequalsメソッド5、assertThat(testedString、equalToIgnoringCase(「developerWorks」)に相当する数値間、文字列間、オブジェクト間が等しいかどうかをテストできます.注記:equalToIgnoringCaseマッチングは、テスト文字列testedStringが大文字と小文字を無視して「developerWorks」に等しい場合、テストが6、assertThat(testedString、equalToIgnoringWhiteSpace(「developerWorks」)に合格したことを示します.注記:equalToIgnoringWhiteSpaceマッチングは、テストされた文字列testedStringが先頭と末尾の任意のスペースを無視して「developerWorks」に等しい場合にテストに合格したことを示します.注意:文字列のスペースは、数値依存マッチング1、assertThat(testedDouble,closeTo(20.0,0.5))を無視できません.注記:closeToマッチングは、テストされた浮動小数点数testedDoubleが20.0±0.5の範囲内であれば、テストが2、assertThat(testedNumber,greaterThan(16.0))に合格することを示します.注記:greaterThan一致子は、テストされた数値testedNumberが16.0より大きい場合、テストが3、assertThat(testedNumber,lessThan(16.0))に合格することを示します.注記:lessThan一致子は、テストされた値testedNumberが16.0未満の場合、テストが4、assertThat(testedNumber,greaterThanOrEqualTo(16.0))に合格したことを示します.注記:greaterThanOrEqualToマッチングは、テストされた数値testedNumberが16.0以上である場合、テストが5、assertThat(testedNumber,lessThanOrEqualTo(16.0))に合格することを示します.注記:lessThanOrEqualToマッチングは、テストされた数値testedNumberが16.0以下である場合、collection関連マッチング1、assertThat(mapObject、hasEntry(「key」、「value」)に合格することを示します.注記:hasEntry照合子は、テストされたMapオブジェクトmapObjectにキー値が「key」の対応する要素値が「value」のEntry項目が含まれている場合、テストが2、assertThat(iterableObject,hasItem(「element」)に合格したことを示します.注記:hasItem一致子は、テストの反復オブジェクトiterableObjectに要素「element」項目が含まれている場合、テストが3、assertThat(mapObject、hasKey(「key」)に合格したことを示します.注記:hasKey照合子は、テストされたMapオブジェクトmapObjectにキー値「key」が含まれている場合、テストが4、assertThat(mapObject、hasValue(「key」)に合格したことを示します.注記:hasValue一致は、テストされたMapオブジェクトmapObjectに要素値「value」が含まれている場合にテストに合格することを示します.
4.注意事項:a.JUnit 4をインポートする必要があります.4以降のバージョンとhamcrest-core.jarとhamcrest-library.JArはassertThatメソッドを使用することができます.b.TestCaseクラスを継承する必要はありませんが、メソッドをテストする前に「@Test」を付けなければなりません.  hamcrest-core.jar  hamcrest-library.jar
コード:
 ( !)
import static org.junit.Assert.*;
/*import static org.hamcrest.MatcherAssert.*;*/( Assert.* , !)
import static org.hamcrest.CoreMatchers.*;

@Test  public void array(){  boolean flag = true;  assertThat(“ddddddddd”, flag, is(true));  }