なぜjunit4は、[ダブル]のためのAssert.assertArrayEqualsを()がないのですか?

StackOverflow https://stackoverflow.com/questions/1591415

  •  22-09-2019
  •  | 
  •  

質問

double以外のすべてのプリミティブのJunit4でAssert.assertArrayEquals()方法があるように見える、例えばます。

Assert.assertArrayEquals(int[] expected, int[] actual)

Assert.assertArrayEquals(char[] expected, char[] actual)

ではなく

Assert.assertArrayEquals(double[] expected, double[] actual, double eps)

または

Assert.assertArrayEquals(double[] expected, double[] actual, double[] eps)

(ダブルスの可変範囲を説明するために後者)。私はこのような関数を書くべきではありませんなぜ根本的な理由はありますか?

役に立ちましたか?

解決

それは、オンラインのJavadoc に文書化されていないが、

これは、(4.7)は、Aの方法を持っていますここを。それは確かにjavadocを/バージョンでは監督だったが、それは今そこにある。

他のヒント

メソッドは、JUnitの4.6で追加されているように見えるが、4.5および以前のバージョンに欠けているいくつかの理由のためです。私は新しいJUnitのバージョンにアップグレードするすべての問題を期待していない。

JUnitのバグデータベースによると、彼らは「作業ですその上で」を。バグデータベースが現実と同期して、完全ではないように、他の回答に基づいて、それが鳴ります。

ちょうど使用ます:

 AssertTrue(**message**, Arrays.equals(**expected**,**result**)

あなたが期待に対して、テストにあなたの結果の値を丸めるために、これを必要な場合があります。

 public double roundTo2Decimals(double val) {
    DecimalFormat df2 = new DecimalFormat("###.####");
    return Double.valueOf(df2.format(val));
}
詳細は javdocするを参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top