В классе, для которого пишу тест, есть переменная:
@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
Проверьте наличие файла application.properties в src/test/resources/
Вам необходимо добавить аннотацию @SpringBootTest к классу
@RunWith(SpringRunner.class)
@SpringBootTest
public class CipherServiceTest {}
Подробнее здесь, пункт 45.4.1
Для тестов спринг использует @TestPropertySource вместо @PropertySource. Эта аннотация имеет более высокий приоритет:
@TestPropertySource("classpath:application-test.properties")
Вариант2:
@SpringBootTest(properties = { "key1=value1", "key2=value2" })
Сборка персонального компьютера от Artline: умный выбор для современных пользователей