Я использую @Nested в JUnit5 для тематической группировки тестов. Следуя опубликованным примерам и шаблонам, которые я использовал в Java и Kotlin ранее. Однако аннотации Spring, связанные с внешним тестовым классом, не применяются к внутренним классам, как я ожидал. Это ошибка или мои неверные предположения?
Я тестирую конечную точку RESTful весной с аннотациями @SpringBootTest и @AutoConfigureMocMvc. Я хотел сгруппировать их в такие вещи, как аутентификация, получение, публикация, размещение и т. Д. Я сгруппировал их, используя @Nested и внутренние классы в соответствии с прошлым опытом и примерами. Однако я обнаружил, что, если я не скопировал все аннотации из внешнего тестового класса в каждое объявление внутреннего класса, ничего не получалось. Я не верю, что это имело место в Java и не подразумевается в примерах.
Сбои:
@SpringBootTest
@AutoConfigureMockMvc
class EndpointTest {
// ... @Autowire's, mocks etc...
@Nested
inner class AuthTest {
@Test
fun `should fail with bad auth`() {
// some logic
}
}
}
Успехов:
@SpringBootTest
@AutoConfigureMockMvc
class EndpointTest {
// ... @Autowire's, mocks etc...
@SpringBootTest
@AutoConfigureMockMvc
@Nested
inner class AuthTest {
@Test
fun `should fail with bad auth`() {
// some logic
}
}
}
Я быпредположили, и примеры, кажется, подтверждают, что внутренний класс не должен копировать все аннотации. Я не думаю, что в Java это так. Это что-то о коде аннотации Спрингс относительно Котлина?