Тестовая программа для класса Date

Я написал класс Date, который добавляет / вычитает дни / месяцы / годы с учетом високосных лет. Теперь мне нужно написать тестовую программу с жестко закодированными данными, чтобы проверить мою реализацию. Самым простым способом было бы создать "контрольную" дату, а затем создать цикл, который переносит ее на один день вперед, скажем, на 3 года (включая високосный год), а затем распечатывает контрольную дату вместе с некоторыми другими даты построены относительно этого. У меня нет большого опыта Java, поэтому мне интересно, как бы я на самом деле это сделал?

2 ответа

Вам не нужно проверять все эти случаи. Подумайте о тестировании, представляющем набор.

то есть не имеет смысла проверять определенную дату и день после, поскольку внутренне будет вести себя точно так же (если мы не говорим о феврале, у которого есть дополнительный день каждые четыре года).

Попробуйте разработать один тест для каждого случая. Я бы, например, проверил случайную дату, месяц с 31 днем, другую с 30, февраль как особый случай, что произойдет, если null передается в функцию.

Таким образом, если что-то пойдет не так, вы легко поймете, что происходит.

Цикл по датам, добавив 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());

может быть, вам также нужен один тест для каждого особого случая, как

  • "не каждые 400 лет"
Другие вопросы по тегам