Не могу ввести тестовый Config в Play! 2.6 приложение, созданное Guice - PullRequest
0 голосов
/ 02 апреля 2020

В тесте JUnit в игре! 2.6.25 приложение, выполненное в IntelliJ, я пытаюсь внедрить тестовую конфигурацию: Config в приложение: приложение, созданное Guice. Но приложение: Приложение не содержит введенного конфига. Что я делаю не так?

Config config = ConfigFactory.parseFile(new File("test.conf")).resolve();
// myapp.key resolved to "value"
String value = config.getString("myapp.key");
GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder();
guiceApplicationBuilder.withConfigLoader(environment -> ConfigFactory.load(config));
Application app = guiceApplicationBuilder.build();
// why myapp.key cannot be resolved? 
app.config().getString("myapp.key");

test.conf

myapp.key = value

Также пробовал (без успеха):

guiceApplicationBuilder.loadConfig(config);
guiceApplicationBuilder.configure(config);

1 Ответ

0 голосов
/ 03 апреля 2020

Вы на самом деле отказываетесь от Application Builder, у которого есть пользовательский загрузчик конфигурации, так как он представляет собой неизменную структуру данных. Сделайте это так:

GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder()
  .withConfigLoader(environment -> ConfigFactory.load(config));

или просто

GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder()
  .configure(config);

Просматривая подпись методов, вы замечаете, что они все возвращают (новый!) GuiceApplicationBuilder.

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