Sorry für den Titel, ich bin zu frustriert, um etwas besseres jetzt zu finden.Ruby Stubbing mit Faraday, kann es nicht zur Arbeit
Ich habe eine Klasse, Judge
, die eine Methode #stats
hat. Diese Statistik Methode soll eine GET-Anfrage an eine API senden und einige Daten als Antwort erhalten. Ich versuche dies zu testen und stats die stats-Methode, so dass ich keine tatsächliche Anfrage ausführen. Dies ist, was mein Test wie folgt aussieht:
describe Judge do
describe '.stats' do
context 'when success' do
subject { Judge.stats }
it 'returns stats' do
allow(Faraday).to receive(:get).and_return('some data')
expect(subject.status).to eq 200
expect(subject).to be_success
end
end
end
end
Dies ist die Klasse-I-Tests sind:
class Judge
def self.stats
Faraday.get "some-domain-dot-com/stats"
end
end
Das gibt mir zur Zeit die Fehler: Faraday does not implement: get
So Wie Stummel Sie diese mit faraday? Ich habe Methoden wie gesehen:
stubs = Faraday::Adapter::Test::Stubs.new do |stub|
stub.get('http://stats-api.com') { [200, {}, 'Lorem ipsum'] }
end
Aber ich kann nicht scheinen, es richtig anzuwenden. Was fehlt mir hier?
Diese ordentlich aussehen. Getting "Double: Verbindung empfangen unerwartete Nachricht: Stub mit (: get)", tho. Welche ist unerwartet die: Stub-Methode oder die: Get? : s – Majoren
Welche Version von rspec verwenden Sie? Benutzt du Rspec Mocks oder irgendeine andere Mocking Library? –
rspec: 3.0.0.beta2, WebMock: 1.17.3 – Majoren