1

うるう年を考慮して日/月/年を加算/減算する Date クラスを作成しました。実装をテストするために、ハードコードされたデータを使用してテスト プログラムを作成する必要があります。最も簡単な方法は、「基準」日付を作成し、たとえば 3 年間 (うるう年を含む) にわたって 1 日ずつ進めるループを作成し、基準日を他の日付と一緒に出力することです。それから相対的に構築された日付。私はJavaの経験があまりないので、実際にこれをどのように行うのか疑問に思っていますか?

4

2 に答える 2

2

これらすべてのケースを実際にテストする必要はありません。セットを表すテスト ケースについて考えてみましょう。

つまり、特定の日付とその翌日をテストする意味はありません。内部的にはまったく同じように動作するためです (2 月について話している場合を除き、4 年ごとに余分な日があります)。

ケースごとに 1 つのテストを設計するようにしてください。nullたとえば、ランダムな日付、31 日の月、30 日の別の月、特別なケースとして 2 月、aが関数に渡されるとどうなるかをテストします。

このようにして、何か問題が発生した場合、何が起こっているのかを簡単に知ることができます。

于 2015-02-26T12:12:36.363 に答える
1

1日を追加して日付をループすることはうまくいきますが、私の意見では複雑です. いくつかの例があれば十分です。

(疑似コード) 閏年

// assuming 1996-02-28 is a leap year which i have not verified
MyDate feb28th = createDate("1996-02-28");
feb28th.addDays(1);
AssertEquals("1996-02-29", feb28th.toString());

(疑似コード) うるう年以外の場合

MyDate feb28th = createDate("1997-02-28");
feb28th.addDays(1);
AssertEquals("1997-03-01", feb28th.toString());

たぶん、次のような特殊なケースごとに1つのテストも必要です

  • 「400年ごとではない」
于 2015-02-26T12:16:51.393 に答える