dredd - Dredd:Ruby-hooks:为多个请求执行相同的钩子
问题描述
我面临的问题是:
我有一个请求,需要为此请求检查 3 种类型的响应。每次我需要在发送之前稍微修改我的请求正文。
dredd --names:
info: Users > User Operations > Update User > Example 1
skip: PUT (204) myurl/users/userid-123
info: Users > User Operations > Update User > Example 2
skip: PUT (422) myurl/users/userid-123
info: Users > User Operations > Update User > Example 3
skip: PUT (429) myurl/users/userid-123
我的想法是在之前的钩子中做一些类似“黄瓜式”的事情:
before(/^Users > User Operations > Update User > Example (1|2|3)$/) do |myvar|
Here run loop from 1 to 3 and do necessary changes
但是经过几次试验,这似乎不起作用,看起来 ruby-hooks 不支持名称中的变量。
任何想法对于这种情况来说什么是正确的方法,因为这里似乎不适合为每个请求设置单独的前钩子?
解决方案
我认为 Ruby 挂钩不支持事务名称中的正则表达式。一个简单的解决方法是捕获所有并区分钩子本身的事务:
before_each do |transaction|
if transaction.name.match(/Example (1|2|3)$/)
...
end
end
推荐阅读
- python - 数组的符号导数
- mysql - 1822 (HY000): 添加外键约束失败
- html - 网站未重定向到节点 js 服务器
- math - 给定行列式 a 和 b 时如何在 2x2 矩阵中查找元素
- tableau-api - Tableau 地理制图不显示整个地图
- android - 一个 LiveData 返回 null
- java - 为什么包装器整数值和实际 int 值在变量查看器中显示不同(在 Netbeans 调试模式下)?
- discord - 如何从机器人脚本向频道发送游戏邀请(丰富的存在游戏邀请)?
- python - 如何用 Numpy 而不是 Pandas 计算满足条件的总和
- python - Python for 循环 - 我可以从循环内的条件集中跳过多次迭代吗?