1. ホーム
  2. java

[解決済み] JUnitアサーションでの配列の比較、簡潔な組み込み方法?

2022-04-14 08:43:48

質問

JUnitで2つの同型の配列に対してequalsアサーションを行うための簡潔でビルトインな方法はありますか? デフォルトでは(少なくともJUnit 4では)、配列オブジェクト自体でインスタンスの比較を行うようです。

EG、うまくいきません。

int[] expectedResult = new int[] { 116800,  116800 };
int[] result = new GraphixMask().sortedAreas(rectangles);
assertEquals(expectedResult, result);

もちろん、で手動でやることもできる。

assertEquals(expectedResult.length, result.length);
for (int i = 0; i < expectedResult.length; i++)
    assertEquals("mismatch at " + i, expectedResult[i], result[i]);

...でも、もっといい方法はないのでしょうか?

解決方法は?

使用方法 org.junit.Assert のメソッド assertArrayEquals :

import org.junit.Assert;
...

Assert.assertArrayEquals( expectedResult, result );

このメソッドが利用できない場合、誤って Assert クラスを junit.framework .