Тестування окремої частини додатка Spring Shell з використанням власного класу додатка

Тестування окремої частини додатка Spring Shell з використанням власного класу додатка

3 Березня 2024 в 13:55 28

Процес тестування додатків Spring Shell може виявитися нетривіальним завданням через специфіку цього типу додатків. Однак, із правильним підходом і використанням відповідних інструментів, можна ефективно тестувати окремі частини додатка незалежно від оболонки Shell.

Однією з основних проблем при тестуванні додатків Spring Shell є те, що для цього типу додатків потрібно використовувати свій власний механізм тестування – анотацію @ShellTest. Якщо ж тестовий клас буде анотований як @SpringBootTest, то додаток буде чекати і нічого не відбудеться.

Проте, існує підхід, що дозволяє виділити бізнес-логіку від коду оболонки та тестувати її окремо. Для цього потрібно використовувати @SpringBootTest для налаштування всіх необхідних компонентів та тестувати бізнес-логіку в ізоляції. Проте, як саме це зробити, може викликати певні ускладнення.

Чи можна це вирішити за допомогою конфігурації тестів? Чи потрібен окремий клас додатка? Де потрібно розмістити цей власний клас додатка? Як можна вказати в анотації @SpringBootTest, що тест повинен використовувати певний клас? Я намагався знайти відповіді на ці питання, але всі статті, які я знайшов, стосувалися тестування MVC тощо.

Для вирішення цієї проблеми можна скористатися декількома кроками: