2013-12-13 2 views
1

Я использую метод общего шага;Метод повторного использования в Selenium

Теперь я хочу назвать этот метод двумя способами. В первом случае я говорю;

I select action %action_text_taken_from_properties_string 

Здесь я указать аннотацию, как

@When("I select action $actionText") 

и внутри performAction(), я использую пользовательский processStepString(), чтобы получить фактическое значение из строки файла свойств

В настоящее время в 2-й случай, говорю я;

I select action <action_text> 

Здесь я использую таблицу Примеры передать значение для action_text

Так что мой аннотаций выглядит

@When("I select action <action_text>") 

Но это требует от меня, чтобы иметь подпись как

public void performAction(@Named("action_text") String actionText) 

Мой вопрос: как я могу использовать одно и то же действиеAction() для обоих случаев?

ответ

1

Кажется, вы используете BDD driven approch, но вы не указали, какой процесс вы используете либо Jbehave, либо Cucumber. Я предполагаю, что вы используете Jbehave. В JBehave Вы можете использовать @Alias ​​аннотацию, как этот

@When("a stock of symbol $symbol and a threshold of $threshold") // standalone 
@Alias("a stock of <symbol> and a <threshold>") // examples table 
public void aStock(@Named("symbol") String symbol, @Named("threshold") double threshold) { 
// ... 
} 

вы можете обратиться This Link для получения дополнительной информации.

, пожалуйста, дайте мне знать, если это сработает.

+0

Будет ли это работать для обоих случаев? – testndtv

+0

Да, это сработает – Sravan

+0

Знает ли кто-нибудь, есть ли Jbehave @Alias ​​в Огурце? –

Смежные вопросы