JUnit 4 で Hamcrest を使用するには、assertThat()
関数を使用します。ただし、JUnit 5 には機能がなくなりassertThat()
ます。なしでハムクレストを使用するにはどうすればよいassertThat()
ですか?
2 に答える
Hamcrest がクラスパスに含まれていることを確認してから、Hamcrest がassertThat()
提供する関数を使用する必要があります。現在のJUnit 5 User Guide - Writing Tests Assertionsから、
JUnit Jupiter の org.junit.jupiter.Assertions クラスは、Hamcrest マッチャーを受け入れる JUnit 4 の org.junit.Assert クラスに見られるような assertThat() メソッドを提供しません。代わりに、開発者は、サードパーティのアサーション ライブラリによって提供されるマッチャーの組み込みサポートを使用することをお勧めします。
次の例は、JUnit Jupiter テストで Hamcrest の assertThat() サポートを使用する方法を示しています。Hamcrest ライブラリがクラスパスに追加されている限り、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 を使用して継続できます。」