Мы используем Cucumber/Guice для запуска тестов пользовательского интерфейса на Java, и несколько файлов определения шагов разбросаны по всему месту.
Мой вопрос: где поддерживается состояние? Если бы я хотел запустить два отдельных теста с двумя отдельными бегунами, как обрабатывались бы классы step defs? Создается ли по одному для каждого сценария? каждая функция? Или они разделены между экземплярами?
Например, будет ли это проблемой? Будет ли следующий шаг-определение не потокобезопасным?
public class StepDef {
private Properties props;
private int num;
@Inject
public StepDef(Properties props) {
this.props = props;
}
@Given("^the digit (\d)$")
public void the_digit(int num) {
this.num = num;
}
@When("^it is multiplied by 5$")
public void it_is_multiplied_by_5() {
this.num *= 5;
}
@Then("^the result is (\d)$")
public void the_result_is(int result) {
assertEqual(result, this.num);
}
}