Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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
Java 使用Spock进行测试-使用复杂的数据提供程序_Java_Groovy_Spock - Fatal编程技术网

Java 使用Spock进行测试-使用复杂的数据提供程序

Java 使用Spock进行测试-使用复杂的数据提供程序,java,groovy,spock,Java,Groovy,Spock,Spock可以使用以下构造运行参数化测试: ... where: a << [1, 7, 0] 。。。 哪里: a如果您指的是复杂列表作为对象列表,您可以始终将对象拆分为您在测试中使用的相关字段 例如: 如果需要学生列表,每个学生都有以下数据: class Student { String name String lastname Int age String id } 在测试中,您可以通过将每个对象划分为其字段来构建它。 因此,请像这样使用whe

Spock可以使用以下构造运行参数化测试:

...
where:
a << [1, 7, 0]
。。。
哪里:

a如果您指的是复杂列表作为对象列表,您可以始终将对象拆分为您在测试中使用的相关字段

例如: 如果需要学生列表,每个学生都有以下数据:

class Student {
    String name
    String lastname
    Int age
    String id
}
在测试中,您可以通过将每个对象划分为其字段来构建它。 因此,请像这样使用where部分:

  where:
    name    | lastname | age | id
    "Ron"   | "Black"  | 34  | "2345"
    "Tom"   | "White"  | 26  | "8765"
使用该语法可以使您在每次迭代中拥有不同的对象,如where部分中所定义的


我希望这就是你想要的,因为你的问题可以用不同的方式理解。

你的意思是说
a它正在工作。但是我想要一个更复杂的列表,一个更难在一行中生成的列表。例如?举例会有助于更好地理解。当然。这里有几个例子:1。字符串
abcd
的变体列表,在每个可能的位置插入一个空格(例如
A bcd
ab cd
abc d
)。2.所有可打印ASCII字符的列表,数字和小写字母除外。这些字符可以在一行中创建,但结果不太可读。另外,我可以想出更复杂的例子……这不是我真正的意思,尽管这是一个很好的例子。我说的是一个很难在一行中生成的简单类型列表。您是否尝试在where块中运行函数?例如,运行一个生成5个随机字符串的私有方法,那么每次迭代都会有不同的字符串?使用函数可以在一行中使用它。这就是我一直在做的,使用静态函数。但我希望这类事情能有一个更斯波克风格的DSL<代码>其中
似乎不允许任何此类操作。