Skip to content

Instantly share code, notes, and snippets.

@kyonmm
Created April 5, 2013 08:27
Show Gist options
  • Select an option

  • Save kyonmm/5317560 to your computer and use it in GitHub Desktop.

Select an option

Save kyonmm/5317560 to your computer and use it in GitHub Desktop.
/**
パラメータの列挙と制約を書けば、組み合わせをするライブラリ書いた。
したみたいな感じで使います。
一番下のcombination(parameter, constraints)ってするとテストケースが入ったMapが返ってくる感じです。
今は全組み合わせから制約を抜いてくるだけなのですが、k-wayの導入をして、
combination(parameter, constraints, order)ってして組み合わせるようにすればすごくテストが効率化できる感じ。
**/
def parameter1 = new Parameter(name:"parameter1",params:[1,2,3])
def parameter2 = new Parameter(name:"parameter2",params:["a", "b","c"])
def parameter3 = new Parameter(name:"parameter3",params:[[a:1], [b:2], [c:2]])
def parameter = [parameter1,parameter2,parameter3]
def constraints = [
Constraint
.when{testCase -> testCase.parameter1 == 1}
.then{testCase -> testCase.parameter2 = "b"; testCase.parameter3 = [b:2]; testCase;},
Constraint
.when{testCase -> testCase.parameter1 == 2}
.then{testCase -> testCase.parameter2 = "c"; testCase.parameter3 = [c:2]; testCase;}
]
combination(parameter, constraints).each{
println it
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment