3

次の assertj でチェックする方法が見つかりません (これは非常に一般的です)。

私が持っているとします:

 result1 = {"AAA", "BBB"}
 result2 = {"DDD"}

結果の値が次のいずれかであることを確認したい:

String[] valid = String[]{"AAA", "BBB", "CCC"};

assertj を使用すると、次のようになります。

assertThat(result1).xxxx(valid);
assertThat(result2).xxxx(valid);

そのため、結果1はチェックに合格しますが、結果2は合格しません。

contains() は機能しません (結果にすべての有効な要素が含まれていることを確認します)

この種のチェックのためにカスタム条件を作成する必要はありません

何か案が?

4

1 に答える 1

5

逆にwtiteすることができます:

assertThat(valid).contains(result1);
assertThat(valid).contains(result2);

左側に結果があり、右側に有効であると主張する場合は、次を使用できます。

assertThat(result1).isSubsetOf(Arrays.asList(valid));
assertThat(result2).isSubsetOf(Arrays.asList(valid));

または、 validを配列ではなくセットとして定義しないのはなぜですか?

Set<String> valid = Sets.newHashSet("AAA", "BBB", "CCC"); //Sets comes from google guava
assertThat(result1).isSubsetOf(valid);
assertThat(result2).isSubsetOf(valid);
于 2015-12-19T21:01:21.143 に答える