@Test is used to signal that the annotated method is a test
 method.
 @Test methods must not be private or static and
 must not return a value.
 
@Test methods may optionally declare parameters to be resolved by
 ParameterResolvers.
 
@Test may also be used as a meta-annotation in order to create a
 custom composed annotation that inherits the semantics of @Test.
 
Inheritance
@Test methods are inherited from superclasses as long as they are
 not overridden according to the visibility rules of the Java language.
 Similarly, @Test methods declared as interface default methods
 are inherited as long as they are not overridden.
 
Test Execution Order
By default, test methods will be ordered using an algorithm that is
 deterministic but intentionally nonobvious. This ensures that subsequent runs
 of a test suite execute test methods in the same order, thereby allowing for
 repeatable builds. In this context, a test method is any instance
 method that is directly annotated or meta-annotated with @Test,
 @RepeatedTest, @ParameterizedTest, @TestFactory, or
 @TestTemplate.
 
Although true unit tests typically should not rely on the order
 in which they are executed, there are times when it is necessary to enforce
 a specific test method execution order — for example, when writing
 integration tests or functional tests where the sequence of
 the tests is important, especially in conjunction with
 @TestInstance(Lifecycle.PER_CLASS).
 
To control the order in which test methods are executed, annotate your
 test class or test interface with @TestMethodOrder
 and specify the desired MethodOrderer implementation.
- Since:
 - 5.0
 - See Also: