Spring boot test не видит application.properties

160
09 июня 2019, 05:10

В классе, для которого пишу тест, есть переменная:

@Value("${key}")
private String key;

которая получает значение из файла application.properties

Само приложение видит данное значение из application.properties, но тесты не видят.

Тест не видит значение key, или сам файл application.properties.

Вот код теста:

@SpringBootTest
@RunWith(SpringRunner.class)
public class CipherServiceTest {
    private String decryptData;
    private String encryptData;
    private CipherService cipherService;
    @Before
    public void setUp() {
        cipherService = new CipherServiceImpl();
        decryptData = "1234567";
        encryptData = "Ql1eURhFU";
    }
    @Test
    public void encryptDataTest(){
        assertThat(cipherService.encrypt(decryptData)).isNotEqualTo(decryptData);
    }
    @Test
    public void decryptData(){
        assertThat(cipherService.decrypt(encryptData)).isEqualTo(decryptData);
    }
}

подскажите пожалуйста, где и как правильно прописать properties для теcтов? Читал и руководствовался, но не помогло:

https://docs.spring.io/spring/docs/5.1.3.RELEASE/javadoc-api/org/springframework/test/context/TestPropertySource.html

Answer 1

Проверьте наличие файла application.properties в src/test/resources/

Answer 2

Вам необходимо добавить аннотацию @SpringBootTest к классу

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

Подробнее здесь, пункт 45.4.1

Answer 3

Для тестов спринг использует @TestPropertySource вместо @PropertySource. Эта аннотация имеет более высокий приоритет:

@TestPropertySource("classpath:application-test.properties")

Вариант2:

@SpringBootTest(properties = { "key1=value1", "key2=value2" })
READ ALSO
Java Как отправить запрос на сервер

Java Как отправить запрос на сервер

Сделал на томкате скрипт что, если с браузера зайти на http://localhost:8080/helloservlet/hello, то мне в вк отправится hello в личные сообщенияКак сделать запрос...

207
Как преобразовать код так, чтобы было хотя бы два метода?

Как преобразовать код так, чтобы было хотя бы два метода?

Первый метод public static void main(String[] agrs) - точка входа, а второй - реализация заданияУ меня реализация в public static void main(String[] agrs), но надо сделать по другому

117
сохранение на одном строке

сохранение на одном строке

когда добавлю комментария оно сохраняется в одном же строкеВот код который сохраняет в беззе

176
Как необходимо изменить код так, чтобы можно было вводить несколько sourcePrefix?

Как необходимо изменить код так, чтобы можно было вводить несколько sourcePrefix?

Есть файл s1, который нужно скопировать в sНо как сделать так, чтобы можно было несколько файлов скопировать в один и как реализовать с помощью...

118