JUnit-在另一个类的测试中使用方法

时间:2019-01-30 11:33:54

标签: java selenium methods junit automation

情况如下:

我有一个为项目的一部分执行测试的类。

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)执行测试。

如何防止这种情况发生,或者还有另一种方法可以使用该方法而不扩展和不公开该方法?

2 个答案:

答案 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。