Serenity BDD с jUnit, как ввести шаги в метод установки?

Я работаю над тестовой средой, в которой используются Serenity, Selenium и jUnit. У меня есть несколько тестов, которые зависят от аутентификации пользователя. В основном мне приходится повторять все шаги входа в систему для каждого теста. Я хотел переместить эти шаги в метод @Before, но кажется, что шаги не инициализируются в методе, который не помечен как @Test... См. фрагмент кода ниже, экземпляр AuthSteps не инициализируется.

Каковы мои варианты?

@RunWith(SerenityRunner.class)
public class MyTests extends AbstractTest {
@Managed(driver = "firefox", uniqueSession = false)
@Steps
AuthSteps auth;

@Before
public void authSetup() {
 if (!authenticated){
  auth.login();
  //a lot of other things
 }
}

@Test
public void mytest(){
 //do test related stuff
}

person vicusbass    schedule 02.08.2016    source источник


Ответы (1)


Они делают. Шаги будут выполняться с @BeforeClass, @Before, @Test и т. д. Кажется, что ваш оператор if (!authenticated) может исключать выполнение вашего шага auth.login().

Здесь, конечно, недостаточно кода (например, boolean authenticated), чтобы четко изучить вашу проблему, но я надеюсь, что этот ответ поможет вам.

person JDelorean    schedule 03.08.2016
comment
Да, похоже, проблема была совсем в другом, мне удалось разместить аннотацию @Managed не в том месте... Смущает. - person vicusbass; 03.08.2016
comment
Правильно, для тех, у кого похожие проблемы, должно быть что-то вроде: @Managed(driver = "firefox", uniqueSession = false) static WebDriver driver; - person JDelorean; 03.08.2016
comment
Я определенно не могу получить доступ к своему @Steps в методе @BeforeClass. Это нулевое значение. Хотя потом работает. Так что я думаю, что это еще не введено. - person Andreas Scharf; 22.02.2019