Dredd:Ruby-hooks:为多个请求执行相同的钩子

Dredd: Ruby-hooks: execute same hook for multiple requests

我面临的问题是:

我有一个请求,需要检查此请求的 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 hook 中做一些类似 "cucumber-style":

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 不支持名称中的变量。

对于这种情况,什么是正确的方法有什么想法吗,因为这里似乎不适合为每个请求设置单独的 before-hook?

我认为 Ruby 挂钩不支持事务名称中的正则表达式。一个简单的解决方法是捕获所有事务并在挂钩本身中区分事务:

before_each do |transaction|
  if transaction.name.match(/Example (1|2|3)$/)
    ...
  end
end