Огурец 4 Необязательные слова? - PullRequest
0 голосов
/ 04 октября 2019
@Then("a topic is (not) displayed on the chat icon of the menu")

В основном я хочу, чтобы не было необязательным, если это возможно? Ранее это было (есть | нет).

Добавление того, что | не является частью группы захвата, вводится как строка в stepdef.

1 Ответ

2 голосов
/ 05 октября 2019

Если вы хотите использовать регулярные выражения, вы должны начать свои строки с ^ и / или завершить их с $. В противном случае Cucumber будет рассматривать их как выражения огурца . Итак:

@Then("^a topic (is|is not) displayed on the chat icon of the menu$")
public void a_topic_is_displayed(String isDisplayed){

}

Если вы хотите использовать выражения Cucumber, вам придется захватить модификатор в типе параметра. Итак:

@Then("a topic {isOrIsNot} displayed on the chat icon of the menu")
public void a_topic_is_displayed(boolean isDisplayed){

}

И вы зарегистрируете тип параметра для преобразования строки в логическое значение:

typeRegistry.defineParameterType(new ParameterType<>(
    "isOrIsNot",                     // name
    "is|is not",                     // regexp
    boolean.class,                   // type
    (String arg) -> "is".equals(arg) // transformer function
))
...