Вам следует избегать тестирования частных методов. «Цель» использования открытых / закрытых / защищенных методов состоит в том, чтобы инкапсулировать логику и упростить изменение частей кода, не беспокоясь о том, как одна функция или класс взаимодействует с другой.
При этом, если вы все еще чувствуете необходимость проверить свои частные методы, есть обходные пути. Я нашел эту полезную функцию через блог Джея Филда :
class Class
def publicize_methods
saved_private_instance_methods = self.private_instance_methods
self.class_eval { public *saved_private_instance_methods }
yield
self.class_eval { private *saved_private_instance_methods }
end
end
Проверьте ссылку на подробности использования, кажется, быстрый и простой способ сделать то, что вы хотите сделать.