是否有可能将多个救援语句合并为一个 ruby on Rails 语句。
begin
//do something
rescue ArgumentError => e
e.message
rescue NameError => e
e.message
rescue StandardError => e
e.message
end
Run Code Online (Sandbox Code Playgroud)
结合如下
rescue ArgumentError, NameError, StandardError => e
e.message
Run Code Online (Sandbox Code Playgroud) 使用 RSpec 的模拟/存根,如何为该find_by_id方法编写单元测试?
我想使用 RSpec,而不是 WebMock 或 VCR。如何为请求/响应创建存根?
class RapidApiClient
HOST_URL = 'https://brianiswu-open-brewery-db-v1.p.rapidapi.com/breweries'
API_KEY = 'private_api_key'
def request_api(url)
Excon.get(
url,
headers: {
'X-RapidAPI-Host' => HOST_URL,
'X-RapidAPI-Key' => 'API_KEY'
}
)
end
def find_by_id(id)
response = request_api("#{HOST_URL}/#{id}")
return nil if response.status != 200
JSON.parse(response.body)
end
end
Run Code Online (Sandbox Code Playgroud)
响应是:
[
{"id":4 , "name":"Ban Brewing Company" , "brewery_type":"micro", "city":"Tulsa" , "state":"OK"}
{"id":44,"name":"Tab Brewing" "brewery_type":"micro", "city":"Birmingham", "state":"MO"}
]
Run Code Online (Sandbox Code Playgroud)