I know that methods annotated with @BeforeAll
and @AfterAll
JUnit 5 annotations should be static
unless TestInstance.Lifecycle.PER_CLASS
is used.
What I can't understand is why JUnit 5 imposes such limitations? If it is allowed with PER_CLASS
lifecycle, what changes drastically when using PER_METHOD
?
Thanks in advance.
When you use PER_METHOD
, a new instance of the test class is created for each test method. Methods annotated with @BeforeAll
would need to be called before any instance is created. Likewise, @AfterAll
needs to be called after all tests are done, and therefore no instance is available anymore. That lack of instances means these methods need to be static.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.