제목이 불쌍해서 죄송합니다.루비가 faraday로 스터 빙하면 작동하지 않습니다
나는 Judge
클래스를 가지고 있는데,이 메소드는 #stats
입니다. 이 통계 메서드는 API에 GET 요청을 보내고 응답으로 일부 데이터를 가져옵니다. 나는 이것을 테스트하고 stats 메서드를 스텁하여 실제 요청을 수행하지 않으려 고합니다. 이것은 내 테스트 모습입니다 :
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
이것은 내가 테스트 해요 클래스 :
class Judge
def self.stats
Faraday.get "some-domain-dot-com/stats"
end
end
이 현재 나에게 오류 제공 : Faraday does not implement: get
그래서 어떻게 패러데이와 함께이 스텁 않습니다를? 나는 다음과 같은 방법을 보았습니다.
stubs = Faraday::Adapter::Test::Stubs.new do |stub|
stub.get('http://stats-api.com') { [200, {}, 'Lorem ipsum'] }
end
그러나 나는 올바른 방법으로 적용 할 수 없습니다. 내가 여기서 무엇을 놓치고 있니?
에서 돌아 보여주는 레일 콘솔입니다. "Double : 연결 수신 예기치 않은 메시지 : 스텁 (: get)", tho. 예기치 않은 것 : 스텁 메소드 또는 : get? : s – Majoren
어떤 rspec 버전을 사용하고 있습니까? rspec mocks 나 다른 mocking 라이브러리를 사용하고 있습니까? –
rspec : 3.0.0.beta2, WebMock : 1.17.3 – Majoren