为了账号安全,请及时绑定邮箱和手机立即绑定

如何在所有测试类开始之前执行一段代码?

如何在所有测试类开始之前执行一段代码?

一只甜甜圈 2023-12-10 15:13:08
如何在所有类中的所有测试开始之前执行一次方法?我有一个程序需要在任何测试开始之前设置系统属性。有什么办法可以做到这一点吗?注意:@BeforeClass或@Before仅用于同一测试类。就我而言,我正在寻找一种在所有测试类启动之前执行方法的方法。
查看完整描述

3 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

要为您的测试用例设置前提条件,您可以使用类似这样的东西 -


@Before

public void setUp(){

    // Set up you preconditions here

    // This piece of code will be executed before any of the test case execute 

}


查看完整回答
反对 回复 2023-12-10
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

如果您需要在所有测试开始之前运行该方法,则应该使用注释@BeforeClass,或者如果您需要每次执行该类的测试方法时都执行相同的方法,则必须使用@Before



@Before

public void executedBeforeEach() {

   //this method will execute before every single test

}


@Test

public void EmptyCollection() {

  assertTrue(testList.isEmpty());     

}


查看完整回答
反对 回复 2023-12-10
?
森林海

TA贡献2011条经验 获得超2个赞

您可以使用测试套件。

测试套件


@RunWith(Suite.class)

@Suite.SuiteClasses({ TestClass.class, Test2Class.class, })

public class TestSuite {


    @BeforeClass

    public static void setup() {


        // the setup

    }

}

并且,测试类


public class Test2Class {


    @Test

    public void test2() {


        // some test

    }

}

public class TestClass {


    @Test

    public void test() {


        // some test

    }

}

或者,您可以有一个处理设置的基类

public class TestBase {


    @BeforeClass

    public static void setup() {


        // setup

    }

}

然后测试类可以扩展基类


public class TestClass extends TestBase {


    @Test

    public void test() {


        // some test

    }

}

public class Test2Class extends TestBase {


    @Test

    public void test() {


        // some test

    }

}

但是,每次执行时,这都会为其所有子类调用该setup方法。TestBase


查看完整回答
反对 回复 2023-12-10
  • 3 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信