之间的主要区别是什么
@Before
@BeforeClass
@After
@AfterClass
编写测试时,通常会发现几个测试需要先创建类似的对象,然后才能运行。
而@BeforeClass可以用来建立数据库连接。但是不能@Before一样吗?
标记的代码@Before在每次测试之前执行,而@BeforeClass在整个测试夹具之前运行一次。如果你的测试类有十个测试,则@Before代码将执行十次,但@BeforeClass仅执行一次。
通常,@BeforeClass当多个测试需要共享相同的计算昂贵的设置代码时,可以使用。建立数据库连接属于此类。你可以将代码从@BeforeClass移到@Before,但是测试运行可能需要更长的时间。注意,标记的代码@BeforeClass作为静态初始化程序运行,因此它将在创建测试夹具的类实例之前运行。
在JUnit 5中,标记@BeforeEach和与JUnit 4中@BeforeAll的@Before和等效。@BeforeClass它们的名称更能指示它们的运行时间,并且松散地解释为:“在每个测试之前”和“一次在所有测试之前”。
@BeforeEach
@BeforeAll