【问题标题】:Serenity BDD with jUnit how to inject steps into setup method?Serenity BDD 与 jUnit 如何将步骤注入设置方法?
【发布时间】:2016-08-02 12:12:01
【问题描述】:

我正在开发一个使用 Serenity、Selenium 和 jUnit 的测试框架。我有一些依赖于用户身份验证的测试。基本上我必须为每个测试重复所有登录步骤。我想将这些步骤移至@Before 方法,但似乎没有在未注释为@Test 的方法中初始化 Steps ... 请参阅下面的代码 sn-p,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
}

【问题讨论】:

    标签: selenium junit bdd thucydides serenity-bdd


    【解决方案1】:

    确实如此。步骤将使用@BeforeClass、@Before、@Test 等运行。似乎您的 if (!authenticated) 语句可能不包括执行您的 auth.login() 步骤。

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

    【讨论】:

    • 是的,看来问题完全出在其他地方,我设法将@Managed 注解放在了错误的位置……尴尬。
    • 正确,有类似问题的,应该是这样的:@Managed(driver = "firefox", uniqueSession = false) static WebDriver driver;
    • 我绝对不能在@BeforeClass 方法中访问我的@Steps。它是空的。不过,它确实在之后起作用。所以我猜它还没有注入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多