Каков наилучший способ модульного тестирования защищенных и закрытых методов в Ruby с использованием стандартной Test::Unit
среды Ruby ?
Я уверен, что кто-то непременно возьмет трубку и будет догматически утверждать, что «вы должны только использовать общедоступные методы модульного тестирования; если это требует модульного тестирования, это не должен быть защищенный или частный метод», но я не очень заинтересован в обсуждении этого. У меня есть несколько методов, которые являются защищенными или частными по уважительным и обоснованным причинам, эти частные / защищенные методы являются умеренно сложными, и публичные методы в классе зависят от правильного функционирования этих защищенных / частных методов, поэтому мне нужен способ для тестирования Защищенные / частные методы.
Еще одна вещь ... Я обычно помещаю все методы для данного класса в один файл, а модульные тесты для этого класса - в другой файл. В идеале я хотел бы, чтобы вся магия реализовала эту функциональность «модульного теста защищенных и закрытых методов» в файле модульного теста, а не в основном исходном файле, чтобы сделать основной исходный файл максимально простым и понятным.