プロが教える店舗&オフィスのセキュリティ対策術

junitでlist同士の比較をしたいのですが、以下のようにlistを順番を無視して直接比較することはできますでしょうか?

@Test
public void test() throws Exception {
List<String> expected = new ArrayList<String>();
expected.add("aaa");
expected.add("bbb");
expected.add("ccc");

List<String> actual = new ArrayList<String>();
actual.add("ccc");
actual.add("bbb");
actual.add("aaa");

// 以下を試してみましたが、順番が違うと比較できませんでした。
// 順番を無視して、含んでいるかどうかだけをlistどうし直接比較したいです。
assertThat(actual, is(expected)));
assertThat(actual, hasItems(expected.toString()));
}

よろしくお願いいたします。

A 回答 (1件)

actual と expected を並べ替えてから検証しましょう


https://docs.oracle.com/javase/jp/10/docs/api/ja …

いちいち並べ替えるのが面倒というなら、専用のアサーションを用意しましょう
https://www.google.com/search?q=junit+独自+アサーション
    • good
    • 0
この回答へのお礼

並べ替えてから検証することにしました。ありがとうございます。

お礼日時:2019/08/31 13:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A