我正在使用kotlin + Kotest属性测试,并尝试使用像这样的列表生成器来测试2个参数的所有排列:
"Some test"{
forAll(4,Exhaustive.collection(listOf(
"a","b")),Exhaustive.collection(listOf(
"1","2"))
{ begins_with,contains ->
println("$begins_with:$contains")
... some validation code...
}
我希望使用穷举生成器以这样的方式生成它们:通过4次迭代,将涵盖所有可能的排列。像这样:
a:1
b:2
a:2
b:1
相反,穷举的生成器总是按照以下列出的顺序运行:
a:1
b:2
a:1
b:2
这意味着我要多次测试同一案例。
我尝试将某些生成器切换为Arbs,但确实会切换顺序,但不是最佳方式。为了增加打中所有案件的可能性,我必须比使用正确的命令进行更多的测试。
我还考虑过多次列出相同的元素
"Some test"{
forAll(4,"1","2",contains ->
println("$begins_with:$contains")
... some validation code...
}
但是这似乎不可持续,尤其是当我想稍后添加更多参数或值时。
有没有一种方法可以生成详尽的排列,而不仅仅是继续遍历每个列表?