Тестирование службы весенней загрузки без запуска @SpringBootApplication - PullRequest
0 голосов
/ 12 октября 2018

У меня есть приложение командной строки с пружинной загрузкой:

    @SpringBootApplication
    public class TheApplication implements CommandLineRunner {
      public void run(String... args) throws Exception {
        ...
     }
    }

, и я хотел бы проверить @Service, который использует TheApplication.Обычно это хорошо, если это приложение mvc, где TheApplication не имеет никакой функциональности, но в этом случае это CommandLineRunner, и каждый раз, когда я хочу проверить, вызывается @Service, run, что создает проблему стесты.Мне нужно аннотировать тест, так как @Service использует @Value для настройки себя, но эти аннотации приводят к запуску приложения и к вызову метода run.

Есть ли способ запустить пружинутест загрузки:

@RunWith(SpringRunner.class)
@SpringBootTest
public class AccessTokenTest {
  ...
}

без вызова TheApplication::run?

1 Ответ

0 голосов
/ 12 октября 2018

Оказывается, это довольно просто, согласно этому ответу .

@Configuration
@ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = CommandLineRunner.class))
@EnableAutoConfiguration
public class TestApplicationConfiguration {
}

@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestApplicationConfiguration.class)
public class TheTest {
  @Autowired
  TheService theService;

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