Я бы хотел иметь функцию, аналогичную isCloseTo(int a, int b)
Так, скажем, если бы я вызвал isCloseTo(5, 5)
, она вернула бы true. Если бы я позвонил isCloseTo(2, 5)
, он тоже должен вернуть true. Но если бы я позвонил isCloseTo(1, 3)
, он вернул бы false.
Итак, я бы написал такие тесты:
assertTrue(isCloseTo(5, 5));
Хорошо, это действительно легко пройти:
public boolean isCloseTo(int a, int b) {return true;}
Тогда, может быть
assertFalse(isCloseTo(1, 3));
, который не работает с вышеуказанной реализацией, поэтому мне нужно изменить его
public boolean isCloseTo(int a, int b) {return a == b;}
Это все еще неполная реализация, поэтому нам нужен еще один тест
assertTrue(isCloseTo(1, 2));
Теперь мы начинаем нуждаться в каком-то реальном веществе. И я думаю, что оставлю остальное как упражнение для читателя. Да, я не учел хитрости, но это стратегия (дизайн, основанный на тестировании), который ведет вас более непосредственно к решениям, чем просто пытается написать код. Пока вы проходите все тесты, вы постепенно продвигаетесь к завершенному решению. Удачи!