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

时间:2018-12-20 19:10:14

标签: dredd

我面临的问题是:

我有一个请求,需要检查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不支持名称中的变量。

有什么想法适合这种情况,因为似乎每个请求都没有单独的挂机,

1 个答案:

答案 0 :(得分:1)

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

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