web-dev-qa-db-ja.com

非推奨のHamcrestメソッドis()を使用する代替手段は何ですか?

現時点では次のコードを使用してboolean値をアサートしていますが、メソッドorg.hamcrest.Matchers.is()は非推奨です。

_assertThat(someValue, is(false));
_

assertTrue()に頼らずにブール値をテストするための単純な代替構文があります。これにより、「Java.lang.AssertionError」のような失敗メッセージが表示されます


コメント/回答を受け取った後に編集

Eclipseが次のimportステートメントを非推奨として表示するため、最初の懸念が提起されました

enter image description here

Hamcrest API docsを表示すると、3つのオーバーロードされたis()メソッドのバリエーションがあり、そのうちの1つだけが非推奨です。

したがって、@ markからのコメントと@mattからの回答を明確にするために、上記で投稿したis()の使用は有効であり、非推奨ではありません。

50
Brad

equalTo(T)を試しましたか?

_assertThat(someValue, equalTo(false));
_

is(T) が推奨されていないことはわかりません- is(Class)は非推奨です dです。

45
matt b

これは一時的な依存関係の問題だと思っていましたが、Eclipseでの表示の問題であり、オーバーロードされたフォームが1つあるためインポートが非推奨とマークされます。インポートはすべてのフォームを公開するため、コードは正常にコンパイルされます。

非推奨のフォームはソースから削除されており、次のリリース(1.4)には存在しません。

元の回答

問題は、 JUnitにはJARにHamcrestクラスのセットが含まれています です。現時点ではjunit-dep.jarを使用できますが、JUnitの新しいバージョン(これまでの4.9および4.10)では省略されています。

9
David Harkness

文書のクラスマッチャーにinstanceOfを使用すると言われています。

http://junit.org/javadoc/latest/org/hamcrest/core/Is.html#isA(Java.lang.Class)

is(IOException.class);

なります

is(instanceOf(IOException.class));

例えば。

3
shinpei