Ruby on rails 我应该如何用rspec-rails测试这段代码?
在我的rails应用程序中,我有一个带有API调用的模块,我想为其编写rspec测试。你会写什么作为这方面的适当测试?我读过《不要将httparty与rspec结合》一书,因为它速度非常慢,现在我不知道该怎么做。谢谢你的建议Ruby on rails 我应该如何用rspec-rails测试这段代码?,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,在我的rails应用程序中,我有一个带有API调用的模块,我想为其编写rspec测试。你会写什么作为这方面的适当测试?我读过《不要将httparty与rspec结合》一书,因为它速度非常慢,现在我不知道该怎么做。谢谢你的建议 module BandsInTown class API attr_reader :artist_name, :info, :events def initialize(artist_name) @artist_name = artis
module BandsInTown
class API
attr_reader :artist_name, :info, :events
def initialize(artist_name)
@artist_name = artist_name
end
def artist_info
@info = fetch_data
end
def artist_events
@events = fetch_data 'events'
end
private
def fetch_data(endpoint = nil)
request_url = "http://api.bandsintown.com/artists/#{[@artist_name, endpoint].compact.join('/')}.json?api_version=2.0&app_id=AUTH_KEY"
resp = HTTParty.get(request_url)
return false if resp.code != 200
resp
end
end
end
我通常会四处提出API请求
下面是一个关于youtspec\u helper.rb
中的代码的示例:
require 'webmock/rspec'
def stub_api_requests
response = File.read('spec/fixtures/payload.json')
stub_request(:get, %r{http:\/\/api.bandsintown.com\/artists/\/(.)*})
.to_return(
status: 200,
body: response
)
end
config.before(:each) do
stub_api_requests
end
我通常会四处提出API请求
下面是一个关于youtspec\u helper.rb
中的代码的示例:
require 'webmock/rspec'
def stub_api_requests
response = File.read('spec/fixtures/payload.json')
stub_request(:get, %r{http:\/\/api.bandsintown.com\/artists/\/(.)*})
.to_return(
status: 200,
body: response
)
end
config.before(:each) do
stub_api_requests
end
谢谢Vasile,这会出现在spec_助手中,但是rspec测试本身会出现什么?我不确定我是否理解。只需像往常一样测试这些方法。你可以通过webmock控制响应。是的,现在可以了!谢谢没问题。如果我的答案有帮助,请你投票表决,或选择它作为最佳答案。如果没有,请让我知道如何更清楚。谢谢Vasile,这将包含在spec_帮助程序中,但rspec测试本身会包含什么?我不确定我是否理解。只需像往常一样测试这些方法。你可以通过webmock控制响应。是的,现在可以了!谢谢没问题。如果我的答案有帮助,请你投票表决,或选择它作为最佳答案。如果没有,请让我知道如何更清楚地表达。