Я хочу знать, как я могу выполнить модульное тестирование приведенного ниже класса
Ну, это довольно сложно, потому что ваш класс конфигурации на самом деле устанавливает соединения с базой данных, поэтому этот класс на самом деле не оченьжелательно для «модульного тестирования» как такового.
Поскольку UNIT TESTING - это уровень тестирования программного обеспечения, при котором тестируются отдельные блоки / компоненты (единица измерения является наименьшей тестируемой частью вашего приложения).Обычно он имеет один или несколько входов и обычно один выход.
ИМХО Я бы назвал это интеграционным тестированием, потому что вам нужно будет подключиться к базе данных.
Как подойтитестирование это:
TL; DR - Не беспокойтесь о написании явного теста для этого класса.
Запустив @SpringBootTest
в своем основном классе, ваш класс должен пройти проверку в качестве побочного эффекта.
Объяснение:
Это мало что даетимеет смысл тестировать этот класс явно, потому что вы будете в основном тестировать:
- Были ли созданы бины
- Заполнены ли поля
@Value
значениями - Является ли соединениек базе данных, установленной
Из этих трех вещей, только пункт № 3 действителен для тестирования, первые два проверены разработчиками Spring, когда они писали среду.При этом подключение к базе данных - это скорее интеграционный тест, чем модульный тест.Если вы хотите проверить это, вы можете использовать базу данных в памяти, такую как H2 , ее можно настроить для работы только на тестах.
У меня есть классы DAO в моем проектекоторые используют эти соединения БД, мне все еще нужно проверить класс ниже?У меня даже есть класс RestController, который нужно протестировать.
Spring имеет отличную поддержку для тестирования приложения ломтики (части вашего приложения, например: один класс за раз иликласс + это зависимости).
В частности:
- для класса DAO, проверьте
@DataJpaTest
и TestEntityManager
class. - Для классов контроллера используйте
@WebMvcTest
и MockMvc
класс.
Эти устройства разработаны для упрощения тестирования с пружинной загрузкой.Для некоторой базовой информации, вы можете проверить эту статью.
Надеюсь, это поможет