@BeforeClass (@BeforeAll) 和 @AfterClass (@AfterAll) 方法名称的约定是什么?

Gio*_*uri 2 java junit unit-testing junit4 junit5

从历史上看,JUnit 中有一个流行的约定,即:

  • @Before/@BeforeEach方法为setUp()
  • @After/@AfterEach方法为tearDown()

@BeforeClass/@BeforeAll@AfterClass/方法名称怎么样@AfterAll?有没有采用的命名约定?

我找不到任何可靠的资源。

Sam*_*nen 7

setUp()并且仅作为约定tearDown()存在,因为这些是 JUnit 3 中方法的硬编码名称。因此,在 JUnit 4 之前,这些方法必须准确命名。TestCase

从 JUnit 4 开始,开发人员可以随意命名设置和拆卸方法。这同样适用于 JUnit Jupiter。

有些人更喜欢继续命名它们setUp()tearDown()。有些人喜欢简单地在注释后命名它们,例如before()/beforeEach()after()/ afterEach()。有些人喜欢将它们命名为有意义的名称,例如prepareMock()verifyMockInvocations()

所以,最终这实际上只是一个偏好问题。

JUnit 3 没有类级生命周期回调方法。因此,没有相应的遗留约定,例如 withsetUp()tearDown()。至于如何称呼它们,相同的“偏好规则”适用于这些方法。你喜欢怎么称呼他们就怎么称呼他们!