Tak, można drwić żądania. Miałem tu długą odpowiedź, opisującą, jak to zrobić, ale w rzeczywistości niekoniecznie jest to, czego chcesz.
Po prostu wywołaj metodę pomocnika na obiekcie pomocnika w swoim przykładzie. Podobnie jak:
describe "#item" do
it "does whatever" do
helper.item.should ...
end
end
To da ci dostęp do obiektu żądania testu. Jeśli trzeba podać konkretną wartość dla ścieżki żądanie, można to zrobić tak:
before :each do
helper.request.path = 'some-path'
end
Faktycznie, pod względem kompletności, pozwól mi to mój oryginalny odpowiedź, ponieważ w zależności od tego, co starasz zrobienie tego może być pomocne.
Oto jak można kpić zgłoszeniu:
request = mock('request')
controller.stub(:request).and_return request
Możesz dodać metody pośredniczące do zwracanego życzenie podobnie
request.stub(:method).and_return return_value
i składni alternatywnej drwić & niedopałek wszystko w jednym wierszu:
request = mock('request', :method => return_value)
Firma Rspec złoży skargę, jeśli Twoja próbka otrzyma komunikat Ges, których nie zagraliście. Jeśli istnieją inne rzeczy Po prostu wywołaj metodę pomocnika żądania na obiekcie pomocnika, robisz to, czego nie obchodzi twój test, możesz zamknąć rspec w górę, czyniąc z niego przykład "obiektu zerowego", na przykład. jak Podobnie jak
request = mock('request').as_null_object
Wygląda na to wszystko prawdopodobnie trzeba uzyskać konkretny przejazd testowy to:
describe "#item" do
let(:request){ mock('request', :fullpath => 'some-path') }
before :each do
controller.stub(:request).and_return request
end
it "does whatever"
end
Czy masz „wymagają«rspec/szyny»” w spec_helper.rb? – Rubyman
Tak, robię. Dzięki. –