Когда мне нужно упомянуть класс приложения в аннотации `@ SpringBootTest`? - PullRequest
0 голосов
/ 18 апреля 2019

Таким образом, мой тестовый класс не может найти компоненты, если я не упомянул тест приложения в аннотациях тестового класса

@RunWith(SpringJUnit4ClassRunner::class)
@SpringBootTest(classes=[MySpringApplication::class])
@WebAppConfiguration
class MyFooIT{...}

Я видел (и писал) другие тесты (в других проектах и ​​в этом) где мне не нужно было явно упоминать класс.

Я не уверен , почему это происходит, и я подозреваю, что незнание может привести к тому, что я столкнусь с проблемами позже.

Когда вам нужно предоставить класс с аннотацией @SpringBootTest, а когда нет?

1 Ответ

0 голосов
/ 18 апреля 2019

Существует две ситуации, когда вам может потребоваться указать класс приложения, который вы хотите использовать в @SpringBootTest:

  1. Когда ваш тестовый класс находится вне корневого пакета вашего класса приложения (подробнее о структуре здесь )
  2. Когда у вас есть более одного класса приложения в пакете вашего основного приложения.Обычно это происходит, когда у вас есть зависимости, использующие один и тот же пакет (модуль A использует com.example в качестве корневого пакета, а модуль B зависит от модуля A и также использует com.example в качестве корневого пакета)

Вы можетепроверьте, находится ли ваш MyFooIT в иерархии корневого пакета (содержащего MySpringApplication), или у вас есть несколько классов приложений в одном и том же корневом пакете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...