При записи ParameterizedTest
с пружинной загрузкой можно указать MethodSource
, который предоставляет значения. MethodSource
- это статический метод, который означает, что доступ к значениям и элементам с автосвязью невозможен.
Я определяю значение в application.properties
, которое имеет решающее значение для настройки параметров (оно указывает на каталог, содержащий данные, которые мне нужны). Как я могу получить доступ к значению в статическом методе?
пример кода:
application.properties:
com.example.directorypath=a/b/c
ApplicationTest:
@ActiveProfiles("dev")
@RunWith(SpringRunner.class)
@SpringBootTest
public class RdxApplicationTests {
@Value("${com.example.directorypath}")
private String directory;
@ParameterizedTest
@MethodSource("provideDirectories")
public void test(File dir){
System.out.println(dir);
}
private static Stream<Arguments> provideDirectories(){
//here is the place I need the value
File f = new File(directory);
return Arrays.stream(Objects.requireNonNull(f.listFiles())).map(Arguments::of);
}
}