使用Spock测试时无法在Spring Boot测试中连接YAML配置

时间:2019-04-16 14:01:15

标签: unit-testing spring-boot groovy configuration spock

我正在为Spring Boot应用程序编写Spock测试,并且这些测试将YAML配置文件作为依赖项。我可以使用@RunWith(SpringJUnit4ClassRunner.class)成功地插入配置文件,但是这些是Spock测试,不是JUnit测试,并且使用此批注时,某些东西不能正常运行。

所以我跳过了。 Spock测试可以运行,但是YAML配置根本没有连接。我尝试了许多不同的选择,但似乎没有任何效果。还有其他人对此有经验吗?

这是我的考试:

package com.company.producer

import com.amazonaws.services.kinesis.AmazonKinesis
import com.comcast.cpp.broker.rasurakinesisproducer.config.YAMLConfig
import org.junit.runner.RunWith
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.ActiveProfiles
import org.springframework.test.context.ContextConfiguration
import org.springframework.test.context.TestPropertySource
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner
import org.springframework.test.context.junit4.SpringRunner
//import org.springframework.test.context.junit4.SpringJUnit4ClassRunner
import spock.lang.Specification

//@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = [YAMLConfig.class],
        initializers = ConfigFileApplicationContextInitializer.class)

class ProducerSpec extends Specification {

    @Autowired
    YAMLConfig yamlConfig;


//    @Test
    def "just a config test" () {

        when:
        true

        then:
        assert yamlConfig != null
        assert yamlConfig.sourcePath != null
    }

Spock测试结果表明yamlConfig为空。它从来没有连接。

Condition not satisfied:

yamlConfig != null
|          |
null       false

    at com.comcast.cpp.broker.rasurakinesisproducer.ProducerSpec.just a config test(ProducerSpec.groovy:128)

有人有经验吗?

0 个答案:

没有答案