對不起,我很沮喪,現在想出更好的東西。法拉第的紅寶石碎片,無法上手
我有一個類,Judge
,它有一個方法#stats
。這統計方法應該發送一個GET請求到api並獲取一些數據作爲響應。我試圖測試這個和存根統計方法,以便我不執行實際的請求。這是我的測試樣子:
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
但我似乎無法以正確的方式應用它。我在這裏錯過了什麼?
拿回這看起來整潔。獲取「雙:連接收到意外的消息:存根(:get)」,tho。哪一個是意料之外的:存根方法或:get? :s – Majoren
你使用的是什麼版本的rspec?你使用rspec mocks或其他一些模擬庫嗎? –
rspec:3.0.0.beta2,WebMock:1.17.3 – Majoren