Ich verwende RSpec zum Testen meiner Klassen auf Rails.RSpec - Testmethoden, die private Methoden aufrufen, die mokiert werden sollen
Ich frage mich, was eine gute Möglichkeit ist, Methoden zu testen, die private Methoden aufrufen.
Zum Beispiel habe ich diese Klasse:
Class Config
def configuration(overrides)
@config.merge(overrides)
end
private
def read_config_from_yml
@config ||= YAML.load()...
end
end
die Konfigurationsmethode zu testen, müssen wir die read_config_from_yml Methode irgendwie lustig zu machen. Ich weiß, dass es nicht gut ist, einfach die private Methode read_config_from_yml
oder die Instanzvariable @config
zu verspotten, weil das mit den Interna des Objekts zu tun haben würde.
Was kann ich mir vorstellen auf meinem Kopf:
read_config_from_yml öffentliche
hinzufügen Setter-Methode für config (zu vermeiden, dass die Instanzvariable spöttisch) machen
Sind diese Hacks? Irgendwelche anderen Ideen?