Это интересный вопрос, и ответ может быть проще, чем вы думаете.
Проще говоря, напишите тесты, которые подтвердят ваши предположения. Неважно, если вы делаете реализацию или ваши коллеги-программисты
Длинный ответ.
Любой из перечисленных вами вариантов несколько пассивен и требует , чтобы вы вернулись и пересмотрели код (если он существует) рано или поздно.
- Комментарии должны быть прочитаны и обработаны вашим партнером, ответственным за реализацию. Ваш код не может быть скомпилирован в то же время. Если вы проверите такое состояние в репозитории кода, ваш конвейер непрерывной интеграции не будет работать, и в любом случае это плохая практика ... никогда не проверяйте взломанный код
- Исключения во время выполнения выглядят лучше, но они все еще токсичны, потому что ваш коллега-программист может предположить, что реализация уже выполнена без проверки, что также приводит к нестабильной работе системы. Если метод вызывается не так часто, это может привести к поломке производственного кода ... также к плохой практике ... никогда не проверять "не реализованные" исключения
- Ожидание ваших коллег-программистов для реализации методов или заглушки также пугает. Это нарушает ваш рабочий процесс и рабочий процесс ваших коллег-программистов. Что произойдет, если они болеют, на встрече, во время перерыва на кофе, вы хотите провести время в ожидании? ... не ждите кого-то, если вам не нужно
- Реализация недостающих методов определенно лучший путь для продвижения вперед. Но что произойдет, если ваша реализация не удовлетворяет весь вариант использования, и ваши коллеги-программисты должны изменить или изменить его? Как вы и они убедитесь, что он по-прежнему совместим с вашим намерением? Ответ снова прост. Напишите тесты, которые подтверждают, описывают и документируют ваши намерения. Если тесты прерываются, это легко заметить. Если необходимо внести изменения в этот метод, которые нарушают вашу функцию ... вы видите это немедленно. У вас обоих есть причина общаться и решать, что делать. Разделить функционал? Измените свою реализацию и т.д ... никогда не проверяйте код, который недостаточно документирован тестами
Чтобы достичь достаточного уровня тестирования, я бы посоветовал вам взглянуть на две дисциплины.
TDD - разработка, основанная на тестировании - это поможет вам описать свое намерение и в достаточной степени протестировать его. Это также дает вам возможность имитировать или подделывать методы и классы (также используя интерфейсы), которые еще не реализованы. Код и тесты будут по-прежнему компилироваться и позволять вам тестировать свой собственный код в изоляции от кода ваших коллег-программистов. (см .: https://en.wikipedia.org/wiki/Test-driven_development )
ATDD - разработка, основанная на приемочных тестах - это создаст внешний цикл (вокруг цикла TDD), который поможет вам протестировать функцию в целом. Эти тесты станут зелеными только тогда, когда будет реализована вся функция, что даст вам автоматический индикатор, когда ваши коллеги завершат свою работу. Довольно аккуратно, если вы спросите меня.
Предостережение: в вашем случае я бы писал только простые приемочные тесты, а не пытался привлечь слишком много бизнес-стороны, так как для начала было бы слишком много. Напишите простые интеграционные тесты, в которых собраны все компоненты системы, необходимые для этой функции. Это все что требуется
Это позволит вам поместить свой код в конвейер непрерывной интеграции и создать высоконадежную реализацию.
Если вы хотите получить дальнейшее в этой теме, проверьте следующие ссылки: