JUnitとHamcrestを使用して単体テストを作成しています。私は以下を使用してdouble値を比較しています:
assertThat(result, is(0.5));
ただし、計算値を比較する必要があり、完全なdouble値と比較する必要はありません。代わりに、近さを比較したいと思います。
IsCloseTo
というクラスを発見しましたが、assertThat
での使用方法がわからず、オンラインで例を見つけることができません。
次のようなことをするための正しい構文は何ですか?
// I can't do this as I need to know what methods/classes whatever I should be using
// isCloseTo doesn't exist.
assertThat(result, isCloseTo(0.5, 0.1));
Matchers.closeTo(double, double)
を呼び出すことができるはずです。静的インポートでは、次のようになります。
assertThat(result, closeTo(0.5, 0.1));
を使用すると、これを読みやすくすることができます
assertThat(actual, is(closeTo(expected, delta)));
と
import static org.hamcrest.Matchers.closeTo;
import static org.hamcrest.Matchers.is;
うまくいったので、is
は実際にはIs
オブジェクトを返すので、私がする必要があるのは次のことだけでした。
assertThat(result, new IsCloseTo(0.5, 0.1));
Nickbからの答えはしかしより良いです。