55

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

assertThat(someValue, is(false));

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


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

私の最初の懸念は、Eclipse が次のインポート ステートメントを非推奨として示しているために発生しました。

ここに画像の説明を入力

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

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

4

5 に答える 5

50

試しましたequalTo(T)か?

assertThat(someValue, equalTo(false));

私はそれが非推奨であるとは思わないis(T)- is(Class) は非推奨ですが。

于 2012-09-26T16:25:39.733 に答える
10

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

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

元の回答

問題は、JUnitのJARに一連のHamcrestクラスが含まれていることです。今のところ使用できますがjunit-dep.jar、JUnitの新しいバージョン(これまでのところ4.9および4.10)では省略されています。

于 2012-09-27T16:51:42.233 に答える
3

instanceOfドキュメントのクラスマッチャーに使用すると言われています。

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

is(IOException.class);

になります

is(instanceOf(IOException.class));

例えば。

于 2015-02-23T13:47:46.723 に答える