Ich habe folgendes RSpec:Wie testet man eine Methode mit einem Parameter mit RSpec?
describe Job do
let(:job) { Job.new }
describe 'run_job' do
context 'success' do
my_param = [{"job1" => "run"}, {"job2" => "run again"}]
it 'should pass' do
test_result = job.run_job(my_param)
expect(test_result[0]["job1"]).to eq("run")
end
end
end
end
Die Methode:
Class Job
def run_job(my_param)
# puts "#{my_param}"
my_param.each do|f|
# do something
end
end
end
, wenn ich den Test ausführen ich die folgende Fehlermeldung
NoMethodError:
undefined method `each' for nil:NilClass
ich drucken my_param
in der Konsole und Siehe dasselbe Objekt, das an den Test übergeben wurde, [{"job1" => "run"}, {"job2" => "run again"}]
. Ich habe keine Ahnung, warum my_param
ist nil
beim Aufruf .each
. Was habe ich falsch gemacht? Jeder Einblick wird geschätzt.
_ "Ich habe keine Ahnung warum my_param ist null" _ - außerhalb des Beispiels definierte lokale Variablen sind im Beispiel nicht verfügbar. Genauso wie eine lokale Variable, die außerhalb einer Methode definiert wurde, nicht innerhalb der Methode verfügbar ist. – Stefan