Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spock 可以在数据表的方法中使用@Shared吗_Spock - Fatal编程技术网

Spock 可以在数据表的方法中使用@Shared吗

Spock 可以在数据表的方法中使用@Shared吗,spock,Spock,下面显示的是一个示例代码。 假设“hi”和“hello”是复杂的对象,必须在方法内部进行计算 下面的代码告诉我: 进程已完成,退出代码为-1 预期结果是对通过和失败的内容进行“展开”解释 代码: 我认为您甚至不能在方法中定义共享变量,因为它们的目的是在其他方法中可重用,因为它们是高成本计算变量。尝试在类范围中设置共享变量。这样定义@shared局部变量是没有意义的。@Shared注释仅对字段或属性有效。如果将hi和hello移动到特性方法之外,测试将执行。 import spock.lang.S

下面显示的是一个示例代码。 假设“hi”和“hello”是复杂的对象,必须在方法内部进行计算

下面的代码告诉我:

进程已完成,退出代码为-1

预期结果是对通过和失败的内容进行“展开”解释

代码:


我认为您甚至不能在方法中定义共享变量,因为它们的目的是在其他方法中可重用,因为它们是高成本计算变量。尝试在类范围中设置共享变量。

这样定义
@shared
局部变量是没有意义的。
@Shared
注释仅对字段或属性有效。如果将
hi
hello
移动到特性方法之外,测试将执行。
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll

@Unroll
class DataTableTest extends Specification {

    def "#actual should equal #expected"() {
        @Shared def hi = "hi"
        @Shared def hello = "hello"

        expect:
        actual == expected

        where:
        actual | expected
        hi     | hi
        hi     | hello
    }
}