В университете нас учили, что «разработка через тестирование» имеет смысл, особенно если есть правильная спецификация кодирования.
Если вы не можете написать тесты перед кодированием -> спецификация кодирования должна быть более конкретной / имеет проблемы.
Я обычно пишу юнит-тесты на основе спецификации кодирования для моих классов Java, которые впоследствии будут интегрированы и выполнены на нашем сервере непрерывной интеграции jenkins.
Простите, если я ошибаюсь, но это то, что я выучил ...
Это всегда зависит от сложности требуемых классов Java, тривиальные классы "предметной области" не нуждаются в большой спецификации info
В большинстве случаев мы пытаемся указать, как классы или методы должны работать (на словах), а также записать некоторые примеры значений.
Допустим, вы должны написатьметод, который должен проверять, находится ли значение в заданном диапазоне:
// Example Specification:
// the method 'checkIfItsInRange' should return true when : the input lies within the range and it should be devidable by the distance value
// Lets say the range goes from -30,00 to +30,00 with a distance from 0,25
// valid values :30, -30, 15.25, 15.50, 17.75 etc. -> return true
// invalid : -31, -30.01, +30.08, 0.4 etc. -> return false
// MissingParameterException when one of the Parameters is null
public boolean checkIfItsInRange throws MissingParameterException (BigDecimal from, BigDecimal to, BigDecimal distance, BigDecimal input) {
// TODO implement depending on spec.
}
В этом случае вы уже можете написать несколько тестов юнитов, прежде чем приступить к реализацииНе сам метод.
Надеюсь, это немного прояснит ситуацию.