Как получить доступ к файлу application.yml из среды тестирования спока - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть интеграционные тесты, настроенные для приложения с весенней загрузкой, которое взаимодействует с последующими сервисами.Я хотел бы настроить некоторые переменные, используемые в тестах 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 всегда равен нулю.

1 Ответ

0 голосов
/ 14 апреля 2019

Ваша спецификация выглядит неполной, отдельный блок then: не является допустимым тестом для Спока. Если вы хотите что-то подобное, вам нужно expect:.

Также это выглядит как проект Spring Boot, если вы используете @SpringBootTest вместо @ContextConfiguration. Также убедитесь, что у вас есть зависимость spock-spring.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...