Переопределить свойства профиля в весенней загрузке - PullRequest
1 голос
/ 28 апреля 2020

При весенней загрузке у меня есть следующий профиль: application-email.yaml

services:
  email:
    cron: '....'
    recipient: `...`
    other properties...

А в каталоге test / resources у меня есть application.yaml , Я хочу включить все свойства из профиля электронной почты , но для тестов я хочу переопределить свойство recipient.

Так что я ожидаю, что мой application.yaml будет выглядеть следующим образом:

spring:
  profiles:
    include: email

services:
  email:
    recipient: `test-email`

Насколько я понимаю, весна сначала прочитает application.yaml в test / resources и затем переопределяет его значениями из профилей. Но я хочу обратного.

Как мне этого добиться?

Дополнение 1: Я думаю, что могу создать профильный тест, определить моего тестового получателя там. Но можно ли сделать это без дополнительного профиля?

Ответы [ 2 ]

3 голосов
/ 28 апреля 2020

Лучший способ - это создать application-test.yaml и активировать тест профиля.

Почему вы не хотите этого делать? Это путь, рекомендуемый весной.

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

Чтобы получить все ваши тестовые свойства и свойства электронной почты, я бы добавил следующие аннотации:

    @ActiveProfiles("test")
    @PropertySource("classpath:application-email.yaml")
    public class MyWonderfulTests { ...}

И учитывая, что вы хотите переопределить только одно свойство, добавьте следующие данные c блок в верхней части вашего тестового класса:

static {
        System.setProperty("recipient", "test-email");
     }

Это должно сработать:)

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