2017-04-07 4 views

答えて

12

ハムクレストがクラスパスに含まれていることを確認してから、Hamcrestが提供するassertThat()関数を使用する必要があります。現在JUnit 5 User Guide - Writing Tests Assertionsから、

JUnitの木星org.junit.jupiter.AssertionsクラスHamcrestマッチャを受け入れるのJUnit 4のorg.junit.Assert クラスに見られるような assertThat()メソッドを提供しません。その代わりに、開発者は サードパーティのアサーションライブラリ によって提供されるマッチャの組み込みサポートを使用することを推奨しています。

次の例は、JUnit Jupiterテストで、HamcrestのassertThat()サポート を使用する方法を示しています。 Hamstのライブラリ がクラスパスに追加されている限り、assertThat()、is()、equalTo()などのメソッド を静的にインポートして、下のassertWithHamcrestMatcher()メソッドのようにテスト で使用できます。

import static org.hamcrest.CoreMatchers.equalTo; 
import static org.hamcrest.CoreMatchers.is; 
import static org.hamcrest.MatcherAssert.assertThat; 

import org.junit.jupiter.api.Test; 

class HamcrestAssertionDemo { 

    @Test 
    void assertWithHamcrestMatcher() { 
     assertThat(2 + 1, is(equalTo(3))); 
    } 

} 

当然のことながら、JUnitの4プログラミングモデルに基づいて、従来のテストが org.junit.Assert#assertThatを継続して使用することができます。」

+2

assertThat'だった '、私の心をされ吹く何すべてのアサーションを行う新しい方法であるはずのJUnit 5が突然現れ、何らかの形で従来のすべてのアサーションメソッドが残っていますが、現代のものだけが削除されています。彼らは本当にそこに行って、冗長なアサーション方法をすべて削除したと思う。私はおそらく移行の便宜のためだと考えましたが、パラメータの順序は同じではありません。 – Trejkaz

関連する問題