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 не поддерживает переменные в именах.

Любые идеи, что было бы правильным подходом для этого случая, поскольку наличие отдельного переднего хука для каждого отдельного запроса здесь не кажется правильным?


person Dimu4    schedule 20.12.2018    source источник


Ответы (1)


Я не думаю, что хуки Ruby поддерживают регулярные выражения в именах транзакций. Простым обходным решением было бы поймать все и различить транзакции в самом хуке:

before_each do |transaction|
  if transaction.name.match(/Example (1|2|3)$/)
    ...
  end
end
person Honza Javorek    schedule 25.03.2019