Я вивчаю TDD за допомогою c #, наскільки я знаю, тест повинен керувати розвитком , тобто спочатку написати провальний тест після написання голого мінімального коду, щоб пройти тест, потім зробити рефакторинг.
Але також сказано, що " Програма на інтерфейс, а не реалізація ", тому спочатку напишіть інтерфейс . Тут починається моя плутанина. Якщо я спочатку пишу інтерфейс, то це порушує дві речі
Код, написаний для інтерфейсу, не керується тестом .
Очевидно, що це не мінімальний мінімум, я можу написати це простим класом.
Чи варто починати також із написання тестів для інтерфейсу? без будь-якої реалізації, що я буду тестувати?
Якщо це запитання звучить нерозумно за це, але я зовсім розгублений. Можливо, я сприймаю речі занадто буквально.
contract
. Наприклад, це може бути у вигляді абстрактного класу, хоча це не має бути віртуальним класом / методом, оскільки ви не повинні мати можливість його інстанціювати.
interface
для всього. Аclass
також надає інтерфейс, оскільки ви можете приховати деталі реалізації уprivate
змінних.