191

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]);

..しかし、より良い方法はありますか?

4

8 に答える 8

356

org.junit.Assertのメソッドを使用しassertArrayEqualsます。

import org.junit.Assert;
...

Assert.assertArrayEquals( expectedResult, result );

このメソッドが利用できない場合は、誤って から Assert クラスをインポートした可能性がありますjunit.framework

于 2010-11-19T19:06:39.930 に答える
39

使用できますArrays.equals(..)

assertTrue(Arrays.equals(expectedResult, result));
于 2010-11-19T18:29:16.020 に答える
15

Assert.assertArrayEquals("message", expectedResult, result)

于 2010-11-19T18:41:52.510 に答える