如何用 rspec 和 rails 上的水豚测试 API?
How to test a API with rspec and capybara on rails?
我创建了一个控制器,可以通过特殊的 url 读取 api 数据。
def category
@data = get_api_data(param1)
end
def get_api_data(param1)
"http://my_api_url/param1=#{param1}"
end
创建视图后,我可以从浏览器中看到结果。
如果我使用 rspec + 水豚做功能测试
visit category_path('param1')
然后我想确认 api 数据将显示在视图中
expect(page).to have_field('name', with: 'aaa')
但 @data
值始终为空。为什么?是否有必要从测试代码中执行 api url 访问 post?如果需要,怎么办? visit
方法不能接受其他参数。
Capybara 不是为测试 API 而设计的。你应该选择 Rspec 和 Airborne:https://github.com/brooklynDev/airborne
我创建了一个控制器,可以通过特殊的 url 读取 api 数据。
def category
@data = get_api_data(param1)
end
def get_api_data(param1)
"http://my_api_url/param1=#{param1}"
end
创建视图后,我可以从浏览器中看到结果。
如果我使用 rspec + 水豚做功能测试
visit category_path('param1')
然后我想确认 api 数据将显示在视图中
expect(page).to have_field('name', with: 'aaa')
但 @data
值始终为空。为什么?是否有必要从测试代码中执行 api url 访问 post?如果需要,怎么办? visit
方法不能接受其他参数。
Capybara 不是为测试 API 而设计的。你应该选择 Rspec 和 Airborne:https://github.com/brooklynDev/airborne