我正在为一个调用多个http请求到外部服务的方法编写一个单元测试。
首先调用索引路径,例如“http://api.com/things”
然后它遍历索引中的每个元素并调用'show route',说它是“http://api.com/things/123”
你看,唯一的区别是“show”路线末尾的/123
。
现在我有索引路径的存根。
WebMock::API.stub_request(
:get,
/.*api\.com\/things.*/
).to_return(<something>)
问题是这会拦截对“show”路线的调用。
我想为“show”路线做一个不同的模拟。我想不必潜入正则表达式来做到这一点。
有没有办法可以像在Sinatra或Rails中使用相同的方式设置http模拟 - 换句话说,如果文件中的匹配值更高,则较低的匹配将不会被命中?
答案 0 :(得分:0)
正则表达式并不复杂,并且是互斥的,所以应该可以正常工作。
索引
WebMock::API.stub_request(
:get,
/.*api\.com\/things$/
).to_return(<something>)
为节目
WebMock::API.stub_request(
:get,
/.*api\.com\/things\/\d/
).to_return(<something>)