以下のリストに、 jUnit assert メソッドを使用してバンドルbundles
が含まれていないことを確認したいと思います。TestFramework
Bundle[] bundles = framework.getBundleContext().getBundles();
それで、jUnitがバンドルをバンドルのリストと比較するためのそのような方法を提供するかどうか疑問に思っていましたか?
以下のリストに、 jUnit assert メソッドを使用してバンドルbundles
が含まれていないことを確認したいと思います。TestFramework
Bundle[] bundles = framework.getBundleContext().getBundles();
それで、jUnitがバンドルをバンドルのリストと比較するためのそのような方法を提供するかどうか疑問に思っていましたか?
配列をループして assertEquals または assertFalse を使用するだけです (John B が述べたように ham を使用したくない場合)。
for (Bundle current : bundles)
{
assertFalse(current instanceof TestFramework);
}
ハムクレストを使用:
Assert.assertThat(bundles,
CoreMatchers.not(
IsArrayContaining.hasItemInArray(TestFramework)));
静的インポートを使用する場合、これは次のようになります。
assertThat(bundles, not(hasItemInArray(myItem)));
インスタンスが必要な場合は、次を使用できます。
Assert.assertThat(bundles,
CoreMatchers.not(
IsArrayContaining.hasItemInArray(
CoreMatchers.instanceOf(TestFramework.class))));
参考までに、Assert.assertThat
簡単だからという理由だけで使用しMatcherAssert.assertThat
ましたが、エラーのドキュメントが改善されるため、使用することを好みます。
DwB に対応して編集します。提示されたHamcrestHamcrest
以外のソリューションは機能しますが、失敗した場合はexpected false got true
. これは、配列のどの要素が条件に失敗したか、または複数の要素が失敗したかどうかを示しません。ハムクレストに行ったら、二度と戻れません。assertTrue
、assertFalse
またはそれ以上は使用しませんassertEquals
。