Ich mag Unit-Test ein Verfahren mit rspec für RoR und habe eine Methode wie folgt:Ruby/Rails-Test - Zugriffsvariable außerhalb des Gültigkeitsbereichs?
def create_record(obj, params)
begin
obj.add_attributes(params)
result = obj.save
rescue
MyMailer.failed_upload(@other_var, obj.api_class_name, params).deliver_now
end
end
create_record
wird nie direkt aufgerufen, sondern durch ein anderes Verfahren, das in geeigneter Weise in @other_var
füllt.
Wie soll ich mich über den Code zu testen sicher MyMailer machen richtig genannt wird? Sollte ich @other_var
in die Methode eingeführt haben, anstatt darauf zu vertrauen, dass sie anderswo ausgefüllt wird (aka: ist das ein Code-Geruch?)? Vielen Dank!
Stub 'obj.save' einige Fehler zu heben und überprüfen, ob' Action :: Base.deliveries.count' um eins erhöht wird. –