使用 jUnit 的 Serenity BDD 如何将步骤注入设置方法?

Serenity BDD with jUnit how to inject steps into setup method?

我正在开发一个使用 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
}

他们有。使用@BeforeClass、@Before、@Test 等的步骤将 运行。您的 if (!authenticated) 语句似乎排除了 auth.login() 步骤的执行。

这里提供的代码(比如 boolean authenticated)肯定不足以清楚地检查您的问题,但我希望这个答案对您有所帮助。