Есть ли способ аннотировать методы для запуска до или после всех классов, аннотированных с @nestest, но не до или после JAVA

Программисты JAVA общаются здесь
Anonymous
Есть ли способ аннотировать методы для запуска до или после всех классов, аннотированных с @nestest, но не до или после

Сообщение Anonymous »

Я использую Junit 5.7.0. У меня есть класс с методом настройки, который я хочу запустить перед каждым вложенным классом, и метод разрыва, который я хочу запустить после каждого вложенного класса, но не до и после каждого метода испытаний в вложенных классах.class BatchJob0TestClass
{
@BeforeEach
public void setUp()
{
//set up test data
}

@AfterEach
public void tearDown()
{
//tear down test data
}

@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@DisplayName("Given only good records in the database")
class AllGoodRecordsTest
{
@Test
@Order(1)
@DisplayName("Then the job should finish successfully")
void shouldSucceed()
{
//run batch job and check that it exited as successful
}

@Test
@Order(2)
@DisplayName("Then some value X should change from '0' to '1' for all test records")
void shouldChangeSomeValueXFrom0To1ForAllTestRecords()
{
//verify that some value X changed from '0' to '1' for all test records
}
}

@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@DisplayName("Given one record in the database where the data is bad")
class OneRecordIsBadTest
{
@BeforeEach
void setup()
{
//change default test set up to have the data of one record be bad
}

@Test
@DisplayName("Then the job should finish as failed")
void shouldFail()
{
//run batch job and verify that it exited as failed
}
}

@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@DisplayName("Given another record in the database where the data is bad in a different way")
class AnotherRecordIsBadInADifferentWayTest
{
@BeforeEach
void setup()
{
//change default test set up to have another record be bad in a different way
}

@Test
@DisplayName("Then the job should finish as failed")
void shouldFail()
{
//run batch job and verify that it exited as failed
}
}
}
< /code>
Другая итерация вышеупомянутых приведенных выше @beforeall и @afterall, соответственно, для методов setup () и teardown (). < /p>
class BatchJob0TestClass
{
@BeforeAll
public static void setUp()
{
//set up test data
}

@AfterAll
public static void tearDown()
{
//tear down test data
}

@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@DisplayName("Given only good records in the database")
class AllGoodRecordsTest
{
@Test
@Order(1)
@DisplayName("Then the job should finish successfully")
void shouldSucceed()
{
//run batch job and check that it exited as successful
}

@Test
@Order(2)
@DisplayName("Then some value X should change from '0' to '1' for all test records")
void shouldChangeSomeValueXFrom0To1ForAllTestRecords()
{
//verify that some value X changed from '0' to '1' for all test records
}
}

@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@DisplayName("Given one record in the database where the data is bad")
class OneRecordIsBadTest
{
@BeforeEach
void setup()
{
//change default test set up to have the data of one record be bad
}

@Test
@DisplayName("Then the job should finish as failed")
void shouldFail()
{
//run batch job and verify that it exited as failed
}
}

@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@DisplayName("Given another record in the database where the data is bad in a different way")
class AnotherRecordIsBadInADifferentWayTest
{
@BeforeEach
void setup()
{
//change default test set up to have another record be bad in a different way
}

@Test
@DisplayName("Then the job should finish as failed")
void shouldFail()
{
//run batch job and verify that it exited as failed
}
}
}
< /code>
Независимо от того, как я это делаю, я не могу получить желаемое поведение. Либо тестовые данные настраиваются или срываются по поводу каждого для каждого для внешнего класса, либо они настроены и снимаются для каждого метода испытаний. Я знаю, как сделать последнее, но я надеялся, что Юнит способен на желаемое поведение только через аннотации.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -annotated

Вернуться в «JAVA»