Так, ви - по-перше, забудьте про тестування одиниць, як про причину проектування коду навколо інструментів тестування одиниць, ніколи не годиться згинати дизайн коду для штучного обмеження. Якщо ваші інструменти змушують вас це робити, отримайте кращі інструменти (наприклад, Microsoft Fakes / Moles, які дозволяють вам набагато більше варіантів для створення макетних об'єктів).
Наприклад, чи розділили б ви свої класи лише на загальнодоступні методи лише тому, що інструменти тестування не працюють з приватними методами? (Я знаю, що переважаюча мудрість полягає в тому, щоб робити вигляд, що вам не потрібно перевіряти приватні методи, але я вважаю, що це реакція на труднощі при використанні поточних інструментів, а не справжня реакція на те, що не потрібно тестувати приватних осіб).,
Загалом, це зводиться до того, який ти TDDer - "мокіст", як описує їх Фаулер , потрібно змінити код відповідно до інструментів, якими вони користуються, тоді як "класичні" тестери створюють тести, які більше інтегруються в природі .