Я досить початківець у тестуванні коду, і раніше був assertблудницею. Одне, що мене хвилює в одиничному тестуванні, - це те, що часто потрібно, щоб ви зробили public(або принаймні internal) поля, які були б privateінакше, щоб скасувати readonlyїх, замість цього зробити privateметоди protected virtualтощо.
Нещодавно я виявив, що ви можете цього уникнути, використовуючи такі речі, як клас PrivateObject, щоб отримати доступ до будь-якого об'єкта за допомогою відображення. Але це робить ваші тести менш рентабельними (речі не вдасться виконати, а не час компіляції; це буде розбито простим перейменуванням, важче налагодити ...). Яка ваша думка з цього приводу? Які найкращі практики тестування одиниць щодо обмеження доступу?
редагувати: врахуйте, наприклад, що у вас є клас із кешем у файлі на диску, а в тестах ви хочете записати на пам'ять.