Java и Cucumber: странное неоднозначное исключение определения шага - PullRequest
0 голосов
/ 21 января 2019

Среда: Java / IntelliJ / Огурец

В последнее время я несколько раз сталкивался с тем, что IntelliJ требует неоднозначного определения шага, когда его нет.

cucumber.runtime.AmbiguousStepDefinitionsException: "that "saken" is a 
rejected case in kommune "5000"" matches more than one step definition:
"^that "([^"]*)" is a rejected case" in SakSteps.isARejectedCase(String)
"^that "([^"]*)" is a rejected case in kommune "([^"]*)"$" in 
SakSteps.isARejectedCaseInKommune(String,String)

Текст шага «Задано» не совпадает, хотя первые 6 строк совпадают:

"^that "([^"]*)" is a rejected case"
"^that "([^"]*)" is a rejected case in kommune "([^"]*)"$"

Имена методов совсем не похожи:

isARejectedCase(String)
isARejectedCaseInKommune(String,String)

Почему IntelliJ / Cucumber заявляют, что они неоднозначны?

Этот код работал раньше. Возможно, между ними было какое-то обновление плагина или другое, но я не понимаю, почему он должен вести себя так?

1 Ответ

0 голосов
/ 22 января 2019

Отвечая на мой пост здесь:

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

When X does Y because of W
When X does Y becayse of W in addition to P
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...