簡體   English   中英

為什么junit4沒有用於double [] s的Assert.assertArrayEquals()?

[英]why does junit4 not have Assert.assertArrayEquals() for double[]s?

Junit4中似乎存在Assert.assertArrayEquals()方法,用於除double之外的所有基元,例如

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)

(后者考慮到雙倍的可變范圍)。 有沒有一個根本原因我不應該寫這樣的功能?

該方法似乎已在JUnit 4.6中添加,但由於某些原因在4.5及以前的版本中缺失。 我不希望升級到更新的JUnit版本有任何問題。

確實有這樣的方法(4.7),雖然它沒有在網上的Javadoc文檔在這里 這肯定是javadoc /版本的疏忽,但它現在就在那里。

根據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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM