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