src
main
java
config
DataSourceProperties.java
resources
application.yml
test
kotlin
service
AuthService.kt
- У меня есть application.yml
Изображение файла application.yml
У меня есть класс настройки Java
@Configuration
@ConfigurationProperties(prefix = "datasource")
class DataSourceProperties {
private String apiUrl;
public String getApiUrl() { return apiUrl; }
public void setUrl(String apiUrl) {
this.apiUrl = apiUrl;
}
У меня есть класс обслуживания kotlin
@RunWith(SpringRunner::class)
@SpringBootApplication
@Profile("dev")
class AuthService {
@Value("\${datasource.apiUrl}")
lateinit var apiUrl: String
fun registerUser(user: RequestUser): ErrorResponse {
return given()
.log().all()
.body(user)
.contentType(ContentType.JSON)
.`when`().post("$apiUrl/security")
.then().statusCode(StatusCodes.BAD_REQUEST)
.extract()
.`as`(ErrorResponse::class.java)
}
}
Когда я выполняю запрос в моем тесте, я получаю
kotlin.UninitializedPropertyAccessException: свойство lateinit apiUrl не было инициализировано
Вот почему у меня есть вопрос? Как я могу использовать свойства из файла YML в тестовом классе. Может быть, я пропускаю другой конфиг, может быть, я не прав с аннотациями, или, возможно, это зависит от расположения файла configure, yml и тестовых файлов в структуре. Пожалуйста, дайте мне подсказку.