对不起标题,我太沮丧了,现在想不出更好的东西。
我有一个类,Judge
它有一个方法#stats
。这个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
但我似乎无法以正确的方式应用它。我在这里想念什么?