Auffüllen von Instanz-Variablen in der rspec-tests
Habe ich eine Klasse mit folgenden aufrufen der Methode.
def initialize(my_var)
@my_var = my_var
end
und ich will die Methode zu testen, die dann etwas tut, um @my_var
def split
@my_var.split(",")
end
wie ändere ich @my_var
vor der Prüfung, die es gibt ein array zurück, richtig?
Ist dies möglich, ohne dass ein accessor für @my_var
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies klingt nicht wie eine richtige Praxis. Rspec sollte testen der Schnittstelle Verhalten der Klassen und Modelle - nicht die interne Implementierung (welche Instanz-Variablen zweifellos sind). Es gibt Möglichkeiten, dies zu tun, aber sind Sie sicher, dass Sie nicht wollen, um eine accessor für die variable?
Jedenfalls, den Sie verwenden können
my_object.instance_variable_get("@my_var")
undmy_object.instance_variable_set("@my_var", value)
zum Bearbeiten der Variablen.File
schreiben und die erwarteten verarbeitet Daten aus dieser Datei, ohne eine Datei zu unterstützen meinen tests. Kann ich dann überspringen Sie die initialize-Methode für die Prüfung andere Methoden in meiner Klasse.