2012-09-19 7 views
7

jUnit 4.8.1には、2つのブール値配列が等しいかどうかのテストがサポートされていないことに気がつきました。他にもたくさんのassertArrayEqualsがありますが、2つのブール値配列をとるものはありません。2つのブール値配列をテストするjUnit

これを行う適切な方法はありますか?私の現在の考え方は、配列を繰り返し処理して何かを使う必要があるということです。

Assert.assertTrue(arrayOne[i] == arrayTwo[i]); 

もっとクリーンな方法がありますか?

+0

いいえ、参照を比較してください – Ilya

+2

'assertTrue(Arrays.equals(array1、array2));' –

答えて

9

Arrays.equals()を使用して、2つの配列を比較し、それらが同等であると主張できます。

Assert.assertTrue(Arrays.equals(arrayOne, arrayTwo)); 

Arrays.equals()チェックの長さや配列の各要素ので、あなたは、各配列を反復処理を心配する必要はありません。

Assert.assertArrayEqualsもあり、配列が異なる正確な位置が得られます。

例:など筆記試験のために:

@Test 
public void doArrayTest() { 
    int[] foo = {1, 2, 3}; 
    int[] bar = {4, 5, 6}; 
    assertArrayEquals(foo, bar); 
} 

結果は次のようになります

arrays first differed at element [0]; expected:<1> but was:<4> 

Expected :1 
Actual :4 
+0

Perfecto、ありがとう! –

+0

この問題は、配列が異なる場合、診断があなたに何か間違っているとは言わず、別の理由を調べるために余分な作業をしなければならないということです – tddmonkey

2

機能12月2014年に発売されたJUnitの4.12に追加された

assertArrayEquals(boolean[] expecteds, boolean[] actuals) 
assertArrayEquals(String message, boolean[] expecteds, boolean[] actuals) 

参考:これは、コミットを含むPRです。 https://github.com/junit-team/junit/pull/632

関連する問題