1

我正在使用Gauge编写测试框架。我想在一个类中执行一些初始化逻辑,以及重用它的步骤逻辑,如下所示:

public class A {
   protected String property = "";
   @BeforeSpec
   public void init(){
      property = "hello";
   }
}

public class B extends A {
   @Step("...")
   public void verifyProperty() {
       assertEquals(property, "hello");
   }
}

我似乎无法做到这一点。执行这些步骤时,“属性”始终为空。将@BeforeSpec 放在 B 类中并调用 super.init() 有效,但我想避免在扩展 A 的每个测试类中进行此调用。有没有人遇到并解决了这样的问题?

4

1 回答 1

0

尝试使用静态变量:

public class A {
   public static String property = "";
   @BeforeSpec
   public void init(){
      property = "hello";
   }
}

public class B {
   @Step("...")
   public void verifyProperty() {
       assertEquals(A.property, "hello");
   }
}
于 2018-02-19T20:54:33.813 回答