Лучшая практика для начальной загрузки приложений в тестах

#micronaut

#micronaut

Вопрос:

Мы смотрели на то, как относится к начальной загрузке приложения EmbeddedServer при выполнении тестов. На данный момент мы понимаем, что начальная загрузка приложения Micronaut может быть примерно такой:

 public class Application {

    public static void main(String[] args) {
        Micronaut.build(args)
            .eagerInitSingletons(true) 
            .mainClass(Application.class)

            // plus some other stuff you might want to configure here

            .start();
    }
}
  

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

 EmbeddedServer server = ApplicationContext.run(EmbeddedServer.class);
  

Код в main методе Application больше не актуален, и тест может выполняться с несколько иной конфигурацией контекста приложения (и с готовыми настройками).

Вероятно, мы можем найти несколько решений, чтобы убедиться, что контекст приложения загружается точно таким же образом в обоих случаях. Но сначала я хотел проверить, что мы не упускаем трюк, и посмотреть, есть ли у Micronaut какие-либо рекомендуемые методы для этого сценария.

Комментарии:

1. github.com/micronaut-projects/micronaut-test/issues/277

2. Спасибо, Джефф, и спасибо вам за ваш быстрый ответ! Я думаю, что здесь есть еще один, более широкий момент: чтобы иметь уверенность в четности поведения, нам понадобится @MicronautTest эквивалент каждой настройки в Micronaut классе. В конечном итоге это станет непрактичным. В то же время большинство значений по умолчанию достаточно разумны (как и обычно в Micronaut!), Поэтому маловероятно, что нам понадобится управлять всеми этими настройками с помощью @MicronautTest . Я просто хотел убедиться, что мы помним, что более широкая точка зрения и проблема дизайна выходят за рамки eagerInitSingletons.

3. Спасибо за отзыв