Исходя из ваших примеров, я предполагаю, что у вас есть два разных варианта («делает» или «нет»).
У вас есть несколько вариантов ввода этого в определение шага, например
с использованием групп захвата:
@Then("^verify word (does|does not) exist in log$")
с использованием регулярного выражения:
@Then("^verify word (.*) exist in log$")
используя выражения огурца :
@Then("verify word {string} exist in log")
Далее вам нужно будет реализовать определение шага, чтобы сделать что-то другое в зависимости от того, содержит ли передаваемая вами строка «not».
public void verifyLogs(String shouldContain) {
if(action.contains("not")){
// call helper method to verify logs **do not** contain the word
}
// call helper method to verify logs **do** contain the word
}
В качестве альтернативы, вы можете использовать два разных определения шагов:
@Then («^ проверить слово существует в журнале $»)
public void verifyLogs (String shouldContain) {
// вызов вспомогательного метода для проверки журналов do содержит слово
}
и
@Then("^verify word does not exist in log$")
public void verifyLogs(String shouldContain) {
// call helper method to verify logs **do not** contain the word
}
Достоинством последней альтернативы является то, что ваши определения шагов будут оставаться очень простыми / не содержать никакой логики. Недостатком конечно является то, что у вас есть 2 определения шагов, что не очень большой недостаток. Imho.