我有一个SpringBootTest,它从application.properties中读取属性。设置代码使用@Value
注释来相应地设置值。其中一个属性是名称数组。
我正在尝试使用Spock编写数据驱动的测试。 where语句使用在setup:
中初始化的这些名称expect:
retrievedName == value
where:
value << getNames()
org.spockframework.runtime.SpockExecutionException: Data provider is null
始终失败。
似乎在设置代码中初始化属性之前调用了getNames()调用。如果我不使用where语句(数据驱动测试),一切正常。有解决方法吗?
答案 0 :(得分:0)
您不能将在setup
节中初始化的数据用作数据驱动测试的源。根据{{3}}:
尽管最后声明了它,但
where
块在包含它的特征方法运行之前会被评估。
您可以尝试使用setupSpec()
方法和@Shared
字段作为解决方法。
有关示例,请参见the docs。