У меня есть интеграционные тесты, настроенные для приложения с весенней загрузкой, которое взаимодействует с последующими сервисами.Я хотел бы настроить некоторые переменные, используемые в тестах spock
из application.yml
, который используется в приложении Spring.Возможно ли это в Spock
и groovy
.
Я пытался использовать аннотации Spring
для захвата данных, как это было сделано в приложении Spring
.
Я пытался использовать приведенный ниже код, но он всегда равен нулю.
@Value('test.base.url')
def variableName
Я также пытался указать на application.yml
, используя @PropertySource('classpath:application.yml')
package com.company.package1
import groovyx.net.http.RESTClient
import org.junit.experimental.categories.Category
import org.springframework.http.HttpStatus
import org.springframework.http.MediaType
import org.springframework.test.context.ContextConfiguration
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
@ContextConfiguration(classes = Application.class)
@Category(IntegrationTest.class)
class GetVariableTests extends Specification {
@Value('test.base.url')
def variableName
def "test variable name"() {
then:
variableName == "http://localhost:8020/"
}
}
application.yml
test:
base:
url:"http://localhost:8020/"
Я бы хотел, чтобы этот тест прошел.Однако variableName
всегда равен нулю.