情况如下:
我有一个为项目的一部分执行测试的类。
public class section1 extends BaseTest {
@Test
public void test1() {
//somecode
}
}
问题是,在test1中,我想使用在另一个测试类中定义的方法(我们在自动化项目中不使用Page Objects)。
public class section2 extends BaseTest {
@Test
public void test2() {
//somecode
methodOne();
}
void methodOne(){
//somecode
}
}
因此,我尝试创建一个实例并通过该实例访问该方法
section2 sec2 = new section2();
.
.
.
@Test
public void test1() {
//somecode
section2.methodOne();
}
但是,一旦开始执行该方法,它将抛出NullPointerException。
然后,我尝试仅将类section1扩展到section2并使用该方法,因此在这里它执行该方法,但是一旦test1完成,它将开始从扩展类(在本例中为test2)执行测试。
如何防止这种情况发生,或者还有另一种方法可以使用该方法而不扩展和不公开该方法?
答案 0 :(得分:0)
Section 1 extends BaseTest
Section 2 extends BaseTest
为什么不尝试这个:
Section 2 extends Section 1
答案 1 :(得分:0)
在section1类中添加以下代码:
section2 sec2;
@Before
public void initialize() {
sec2 = new section2();
}
由于我们使用上面的@Before JUnit批注,因此将通过初始化“ section2”类首先在此处执行此“ initialize()”方法。
@Test
public void test1() {
sec2.methodOne();
}
然后@Test JUnit方法中的代码将被执行,因此您将不会获得NPE。