Я ніколи не любив тестування одиниць. Я завжди думав, що це збільшить обсяг роботи, яку я маю виконати.
Виявляється, це справедливо лише з точки зору фактичної кількості рядків коду, який ви пишете, і, крім того, це повністю компенсується збільшенням кількості рядків корисного коду, які ви можете записати за годину за допомогою тестів та тестової розробки.
Зараз я люблю одиничні тести, оскільки вони дозволяють мені написати корисний код, який досить часто працює з першого разу! (постукати по дереву)
Я виявив, що люди неохоче роблять одиничні тести або починають проект із тестовою розробкою, якщо вони перебувають у строгих строках або в умовах, коли інші цього не роблять, тому не роблять. Ніби як, культурна відмова навіть намагатися.
Я думаю, що одна з найпотужніших речей щодо тестування одиниць - це впевненість, яку вона дає тобі здійснити рефакторинг. Це також дає нову знайдену надію, що я можу надати свій код комусь іншому для рефакторингу / вдосконалення, і якщо мої одиничні тести все ще працюють, я можу скористатися новою версією бібліотеки, яку вони змінили, майже без побоювання.
Я думаю, що саме цей останній аспект тестування одиниць потребує нової назви. Тест одиниці більше схожий на договір того, що цей код повинен робити зараз і в майбутньому.
Коли я чую тестування слів, я думаю про мишей у клітках, на яких робиться багато експериментів, щоб побачити ефективність сполуки. Це не те, що є тестуванням одиниць, ми не випробовуємо різний код, щоб побачити, що є найбільш афективним підходом, ми визначаємо, які результати ми очікуємо з якими входами. У прикладі мишей одиничні тести більше схожі на визначення того, як буде працювати Всесвіт, на відміну від експериментів, проведених на мишах.
Я на тріщинах чи хтось ще бачить цю відмову від тестування і чи вважають вони це подібною причиною, коли вони не хочуть цього робити?
Які причини ви / інші наводите, щоб не пройти тестування?
Як ви думаєте, які їхні мотивації полягають не в одиничному тестуванні?
І як нове ім'я для тестування одиниць, яке може пережити деякі заперечення, як щодо jContract? (Трохи орієнтований на Java, який я знаю :), або одиничні контракти?