Как работают трансформаторы
- Регулярное выражение должно соответствовать параметру
- Выражение огурца должно соответствовать шагу при преобразовании обратно в регулярное выражение
Вы можете использовать любое разнообразие преобразований.Например:
Given I am on the "Home" page
Given I am on the "My Basket" page
Может ли преобразователь сопоставить оба:
defineParameterType({
regexp: /"([^"]*)"/,
transformer(string) {
return urls[string.replace(/ /g, "_").toLowerCase()]
},
name: 'page',
useForSnippets: false
});
Преобразование, которое происходит здесь, заключается в том, что URL-адрес находится в массиве различных URL-адресов.
Ответ
Для вашего примера предоставленное вами определение шага не будет соответствовать предоставленному вами шагу.
Но если мыдолжны были пойти дальше и сопоставить это:
Given we have a new ApiKey called "Red"
Используя определение шага, как это:
Given('we have a new ApiKey called {name}', function(){
return pending
});
Нам потребуется ступенчатый преобразователь, как это:
defineParameterType({
regexp: /"([^"]*)"/,
transformer: function(s) {
return s;
},
name: "name",
useForSnippets: false
});
Примечание : "([^"]*)"
- это не все конечное совпадение регулярного выражения, сопоставляемого с огурцом, но это было довольно стандартное регулярное выражение, которое можно было найти в определениях шагов до того, как выражения огурца вышли с 3.xx, следовательно, 2 примера, которые я использовал, с ними.