0

私はjUnitが初めてで、jUnitについての知識を深めようとしています。ウェブで検索しましたが、いくつかの疑問を解決するものは見つかりませんでした。

これはコードです:

public class StringConverter {

    public static String formatDate(Date date) {
        DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        return sdf.format(date);
    }

}

これは jUnit4 テスト ケースです。

public class StringConverterTest {

    @Test
    public void testFormatDate() {
        Calendar calendar = new GregorianCalendar(2013, 02, 13, 8, 30, 00);
        assertEquals("13/03/2013 08:30:00", StringConverter.formatDate(calendar.getTime()));
    }

}

TestCase は問題なく正しく実行されますが、2 つの簡単な質問/問題があります。

1) メソッドの正しい機能のみをテストするのは正しいnullですか、それとも値や特定の例外もテストする必要がありますか?

2) EclEmmaStringConverterでコード カバレッジを実行すると、テスト ケースがクラスのコンストラクターをテストしていないため、75% のコード カバレッジが得られます。クラスはユーティリティクラスであるため、クラスコンストラクターをテストするStringConverterことは私の計画に含まれていないため、インスタンス化されません。StringConverterこれをコードカバレッジから除外する方法はありますか?

アドバイスをいただければ幸いです。ありがとう。

4

1 に答える 1

2
  1. メソッドが防弾であることを確認するには、次nullのような悲惨な警告をコードに付けない限り、引数を使用するなど、考えられるすべての呼び出し方法をテストする必要があります。

    引数を指定してこのコードを呼び出さないnullでください。

  2. 静的メソッドのみを持つユーティリティ クラスの場合、この事実を強調するために、引数のないコンストラクタは でprivateあり、クラスは である必要があります。final次に、特にこのコンストラクターが空の場合、はあなたを放っておくかもしれません。

于 2013-08-11T21:47:54.473 に答える