タイトルで申し訳ありませんが、今はイライラして、より良いものを思いつくことができません.
Judge
メソッドを持つクラス があり#stats
ます。この統計メソッドは、API に GET リクエストを送信し、レスポンスとしてデータを取得することになっています。これをテストし、統計メソッドをスタブして、実際のリクエストを実行しないようにしています。これは私のテストがどのように見えるかです:
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
しかし、私はそれを正しい方法で適用できないようです。ここで何が欠けていますか?