НЕ ДЕЛАЙТЕ ЭТОГО!
Это слишком глубоко. Смотрите комментарии @Andy и @Michael в теме другого «принятого» ответа
Не пишите модульные тесты, которые смотрят внутрь кода. Если это не то, что вы можете видеть из внешних интерфейсов к объекту, тогда нет необходимости в модульном тестировании. Вы проходите мимо того, как код ведет себя, как он реализует это поведение, и вам не нужны тесты, которые опускаются до этого уровня, поскольку они не предоставляют никакой реальной ценности с точки зрения доказательства того, что код делает то, что должен.
Просто подумайте, сколько тестов вам, возможно, придется обновить, если кто-то перефакторинг этого кода и, чтобы сделать его более читабельным, изменяет внутренние имена вещей ... или, возможно, найдет лучший способ сделать что-либо и все переменные экземпляра измениться .. Модуль кода все еще может работать отлично, но модульные тесты не пройдут ..
В качестве альтернативы, если было внесено изменение, которое регулирует, как внутренние переменные сообщают интерфейсу, код может быть эффективно нарушен, но тесты, которые проверяют внутренние значения переменных экземпляра, не сообщат ни о какой ошибке.