У меня есть следующие пользовательские ParameterType
:
ParameterType(
name: 'response_api_key',
regexp: /@response_api_key@/,
prefer_for_regexp_match: true,
transformer: ->(item) do
@response_api_key ? item.gsub("@response_api_key@", @response_api_key) : item
end
)
и определение шага:
Then("our JSON should be:") do |json|
expect(@result).to eq(JSON.parse(json))
end
используется следующим образом:
Then our JSON should be:
"""
{
"annotations" : [],
"id": "cucumber:host:host-01",
"owner": "cucumber:host_factory:the-layer-factory",
"api_key": "@response_api_key@",
"permissions": [],
"restricted_to": []
}
"""
проблема в том, что @response_api_key@
не заменяется действительным ключом API, хотя я могу убедиться, что @response_api_key
содержит правильный ключ API, добавив отладочный вывод в определение шага.
- Предполагается ли преобразование подобных строк в DocStrings?
- Если да, что я делаю не так?
- Если нет, нужно ли просто вручную преобразовывать данные изнутри определение шага?