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
我面临的问题是:
我有一个请求,需要检查此请求的 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