Created
April 5, 2013 08:27
-
-
Save kyonmm/5317560 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| パラメータの列挙と制約を書けば、組み合わせをするライブラリ書いた。 | |
| したみたいな感じで使います。 | |
| 一番下の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