Да, вы можете реализовать один шаг с одним методом и передать то, что было выбрано в качестве аргумента этому методу. Однако это усложнит ваш тестовый код. Поэтому, пожалуйста, подумайте, стоит ли вам . Сложная логика в тестовом коде усложнит понимание и сопровождение ваших тестов, что отрицательно скажется на их назначении.
Если вы хотите повторно использовать обычные функции, рекомендуется написать вспомогательные методы, из которых можно вызыватьваш шаг определения.
Например:
@When ("I click on the {string} button")
public void clickButton(String button) {
clickButton(button);
}
@When ("I click on the "Link_name" name")
public void clickLink(String link) {
clickLink(link);
}
и реализовать clickButton () и clickLink (), чтобы щелкнуть кнопку или ссылку соответственно. (В этом примере я использовал разные методы clickButton () и clickLink (), потому что в iirc они будут использовать различные типы элементов.)
Если необходимо (или вы действительно хотите использовать переключатель), вы можете использоватьоператор switch, чтобы использовать правильный селектор на основе имени кнопки или ссылки.
В качестве альтернативы вы можете реализовать объекты страницы, добавить все соответствующие селекторы для объекта страницы и вызвать метод соответствующего объекта страницы, который щелкает по этой конкретной ссылке / кнопке, делегируя логику для взаимодействия с пользовательским интерфейсом. объекты страницы и вызов этой логики из ваших определений шагов.