Я хочу представити своїм колегам концепцію одиничних тестів (і тестування взагалі); зараз тестів взагалі немає, і все перевіряється, фактично виконуючи завдання через інтерфейс користувача, щоб побачити бажаний результат. Як ви можете собі уявити, код дуже щільно поєднаний з точною реалізацією - навіть у результаті виходить код, який повинен бути у класі та повторно використаний у всій системі, копіюється та вставляється через методи.
Через змінені вимоги мене попросили змінити модуль, про який я раніше писав, і це досить вільно поєднано (не стільки, як хотілося б, але якнайкраще я можу отримати, не вводячи багато інших понять). Я вирішив включити пакет модульних тестів зі своїм переглянутим кодом, щоб "довести", що він працює, як очікувалося, і продемонструвати, як працює тестування; Я не слідкую за справжнім TDD, оскільки частина коду вже написана, але я сподіваюся дотримуватися деяких концепцій TDD для нового коду, який мені доведеться створити.
Тепер, неминуче, я впевнений, що мене запитають, чому мені потрібно більше ніж два-два дні, щоб написати код, оскільки частини того, з чим я буду взаємодіяти, вже є в системі (хоча і без тестів, і дуже щільно) разом), і коли я перевіряю код, мене запитають, що це за проект "Тести". Я можу пояснити основи тестування, але я не можу пояснити фактичні переваги так, як зрозуміли б інші (оскільки вони думають, що тестування вимагає від вас запустити додаток самостійно, оскільки часто власне інтерфейс має значення для визначення того, чи функція "працює" " чи ні). Вони не розуміють ідеї вільної зв'язку (це чітко видно з того, що нічого невільно пов'язане; немає навіть інтерфейсів поза кодом, який я написав), тому намагаючись використати це як користь, певно, заробив би мені "А?" вид вигляду, і знову ж таки я не можу бути таким розкутим, як хотілося б, не переробляючи декілька існуючих модулів і, ймовірно, вводити якийсь контейнер IoC, який би розглядався як витрата часу, а не "програмування".
Хтось має якісь пропозиції щодо того, як я можу вказати на цей код і сказати «Ми повинні почати створювати одиничні тести», не вимикаючись як поблажливі (наприклад, «Написання тестів змушує вас написати хороший код.», Який, мабуть, вважатиметься кодом крім шахти це погано ) або без того, щоб це здалося марною тратою часу, яка не додає реальної цінності?