- 前言
- 一、随机数据的控制——seed(num)
- 二、通过with对生成数据属性进行设置
- 三、map遍历操作输出结果
- 总结
前言 如同Java中random的的方法,可以通过种子对,随机值进行简单的控制,Gen提供seed(num)对随机数据进行控制。
一、随机数据的控制——seed(num)
def 'setting seed returns the same values with 2 generators configured the same'() {
given:
def generatedA = Gen.string(10).seed(879).take(10).realized
def generatedB = Gen.string(10).seed(879).take(10).realized
expect:
def bo = generatedA == generatedB
println(bo)
}
运行结果:
true
相同参数的随机生成模式结果一致
def 'setting seed returns the same values with 2 generators configured the same'() {
given:
def generatedA = Gen.string(10).seed(879).take(10).realized
def generatedB = Gen.string(10).seed(678).take(10).realized
expect:
def bo = generatedA == generatedB
println(bo)
}
运行结果:
二、通过with对生成数据属性进行设置false
不同参数的随机生成模式结果不一致
def 'call methods on generated value using with'() {
setup:
def gen = Gen.date.with { setTime(1400) }
expect:
def bo = gen.iterator().next().getTime() == 1400
println(bo)
}
运行结果:
三、map遍历操作输出结果true
@Iterations(2)
def 'transform the output of a generator'() {
expect:
result instanceof String
result.isInteger()
println(result)
where:
result << Gen.integer.map { val -> val.toString() }
}
运行结果:
-583199763
1209440527
总结
类似与Java8出现的函数表达式,通过对输出结果的控制,从而更好的优化所得结果。



