我正在运行测试Spring Boot应用程序的JUnit测试。我有一个@Before
方法和一个@After
方法。然后我有一堆@Test
方法,这是实际的测试。
但是,我的@Before
和@After
方法分别在每次测试之前和之后执行,而不是在所有测试之前执行一次,并且在所有测试之后执行一次。
难道我也在使用这个注释吗?
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
答案 0 :(得分:20)
这是@Before
和@After
的正常行为。引用@Before
的文档,例如:
使用
@Before
注释公共void方法会导致该方法在Test
方法之前运行。
如果您只想在所有测试之前和之后运行一次方法,则可以使用@BeforeClass
和@AfterClass
。引用@BeforeClass
的文档,例如:
使用
@BeforeClass
注释public static void no-arg方法会导致它在类中的任何测试方法之前运行一次。
答案 1 :(得分:3)
这正是@Before
和@After
应该做的事情。如果要在整个测试类之前运行某些设置代码,则应使用@BeforeClass
。以同样的方式,如果要在执行完整个测试类后拆除,则应使用@AfterClass
。请注意,应用这两个注释的方法应该是public static
并且不带参数。