まず、自分で書いてみたテスト。
@Test public void testInclusiveBetween() { try { Validate.inclusiveBetween(0, 10, -1); fail("An IllegalArgumentException was not thrown."); } catch (IllegalArgumentException e) { assertEquals("The value -1 is not in the specified inclusive range of 0 to 10", e.getMessage()); } Validate.inclusiveBetween(0, 10, 0); Validate.inclusiveBetween(0, 10, 3); Validate.inclusiveBetween(0, 10, 10); try { Validate.inclusiveBetween(0, 10, 11); fail("An IllegalArgumentException was not thrown."); } catch (IllegalArgumentException e) { assertEquals("The value 11 is not in the specified inclusive range of 0 to 10", e.getMessage()); } }実際のテストコード。
@Test public void testInclusiveBetween() { Validate.inclusiveBetween("a", "c", "b"); Validate.inclusiveBetween(0, 2, 1); Validate.inclusiveBetween(0, 2, 2); try { Validate.inclusiveBetween(0, 5, 6); fail("Expecting IllegalArgumentException"); } catch (final IllegalArgumentException e) { assertEquals("The value 6 is not in the specified inclusive range of 0 to 5", e.getMessage()); } }
うーん、なるほど。inclusiveBetweenの内部ではcompareToを使って比較しているので数値だけじゃなくて文字列も確認しないといけないか。
区間の中にあるとき、区間の端にあるとき、区間の外にあるときの3種類でテストされているけど、始点と終点でやらなくてもいいんだろうか??経路網羅はされているからいいのだろうか。大したボリュームじゃないから書いとけばいいのにって気もする。
0 件のコメント:
コメントを投稿