g
не видно за пределами f
, так что я осмелюсь сказать, по крайней мере, не без отражения.
Я думаю, что тестирование g
в любом случае нарушит концепцию модульного тестирования, потому что вы никогда не должны тестировать детали реализации, а только поведение публичного API.Отслеживание ошибки до ошибки в g
является частью процесса отладки, если тесты на f
не пройдены.
Если тестирование g
важно для вас, определите g
как (защищенный) метод за пределамиf
.Однако это может нарушить ваш дизайн.
Другая идея состоит в том, чтобы помещать вызовы на assert
после вызова g
в исходном коде.Это будет выполнено во время тестов и вызовет исключение, если свойство не будет сохранено, что приведет к сбою теста.Он также будет присутствовать в обычном коде, но может быть удален компилятором, так как assert
(и компаньоны) допустимы (см., Например, здесь ).