JUnit4

BigDecimal 型の検証

assertThat(hoge, comparesEqualTo(new BigDecimal(123L)));

comparesEqualTo を使う

誤差を考慮しての値の検証

数学系の操作をした場合コンピュータの精度の問題で微妙に値がズレてしまうような状況がある。

例えば 角度90度に対する cos の値は数学的にはゼロだが Java で計算すると

6.123233995736766E-17

10のマイナス17乗なので、非常に小さな値だということはわかるが、ゼロでは無い。 これは円周率を概算値で使っていることが起因の誤差でどうしても出てしまう。 しかしテストする側からするとやっかいである。値が定まらないから。

そこで誤差付きの検証メソッドがあるのでそれを使う

assertThat(cosValue, is(closeTo(0.0D, 0.001D)));

このように closeTo メソッドを使うと第一引数に期待値、第二引数に誤差を指定して検証できる。 今回ならば自動的に 0.0 から プラマイ0.001 の範囲に答えが収まっているかをチェックしてくれる。

参考サイト

Tag

java/junit4/start.txt · 最終更新: 2017-10-19 18:39 by ore