小编典典

@ Before,@ BeforeClass,@ BeforeEach和@BeforeAll之间的区别

java

之间的主要区别是什么

  • @Before@BeforeClass
  • 和JUnit中5 @BeforeEach和@BeforeAll
  • @After@AfterClass
    根据JUnit @Before,在以下情况下使用Api:

编写测试时,通常会发现几个测试需要先创建类似的对象,然后才能运行。

@BeforeClass可以用来建立数据库连接。但是不能@Before一样吗?


阅读 2508

收藏
2020-03-09

共1个答案

小编典典

标记的代码@Before在每次测试之前执行,而@BeforeClass在整个测试夹具之前运行一次。如果你的测试类有十个测试,则@Before代码将执行十次,但@BeforeClass仅执行一次。

通常,@BeforeClass当多个测试需要共享相同的计算昂贵的设置代码时,可以使用。建立数据库连接属于此类。你可以将代码从@BeforeClass移到@Before,但是测试运行可能需要更长的时间。注意,标记的代码@BeforeClass作为静态初始化程序运行,因此它将在创建测试夹具的类实例之前运行。

在JUnit 5中,标记@BeforeEach和与JUnit 4中@BeforeAll@Before和等效。@BeforeClass它们的名称更能指示它们的运行时间,并且松散地解释为:“在每个测试之前”和“一次在所有测试之前”。

2020-03-09