例のすべてを本当にテストしたい場合は、次のようなテストを試してください。
public void testIncludes7() throws Exception {
Range range = new Range(0, 5);
assertFalse(range.includes(7));
}
public void testIncludes5() throws Exception {
Range range = new Range(0, 5);
assertTrue(range.includes(5));
}
public void testIncludes0() throws Exception {
Range range = new Range(0, 5);
assertTrue(range.includes(0));
}
public void testEncompassInc7() throws Exception {
Range range = new Range(0, 5);
range.encompass(7);
assertTrue(range.includes(7));
}
public void testEncompassInc5() throws Exception {
Range range = new Range(0, 5);
range.encompass(7);
assertTrue(range.includes(5));
}
public void testEncompassInc0() throws Exception {
Range range = new Range(0, 5);
range.encompass(7);
assertTrue(range.includes(0));
}
そうでないと、エラーの可能性が非常に多く失われるためです。たとえば、範囲の後、範囲には7のみが含まれます。範囲の長さのテストもあります(ランダムな値も含まれていないことを確認するため)。範囲内に5を含めることを完全に試みるための別の一連のテスト...何が期待されますか-範囲内の例外、または範囲は変更されませんか?
とにかく、ポイントはあなたがテストしたい行為に何らかの仮定がある場合、それらを独自のテストに入れます、そうですか?