Java 使用Spock进行测试-使用复杂的数据提供程序
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
...
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<代码>其中
似乎不允许任何此类操作。