1+ @RunWith(Parameterized ::class )
2+ class ParameterizedTest (val redGoals : Int , val blueGoals : Int , val scores : String ) {
3+
4+ companion object {
5+ val game = Game ()
6+
7+ @BeforeClass @JvmStatic
8+ fun initTeams () {
9+ game.addPlayer(Game .Team .RED , " Johnnie" )
10+ game.addPlayer(Game .Team .RED , " William" )
11+ game.addPlayer(Game .Team .BLUE , " Jack" )
12+ game.addPlayer(Game .Team .BLUE , " Jim" )
13+ }
14+
15+ @AfterClass @JvmStatic
16+ fun uninitTeams () {
17+ game.clearTeams()
18+ }
19+
20+ // create test data
21+ @Parameters @JvmStatic
22+ fun createData (): Collection <Array <Any >> {
23+ return listOf (
24+ arrayOf(0 , 2 , " RED 0:2 BLUE" ),
25+ arrayOf(10 , 5 , " RED 10:5 BLUE" ),
26+ arrayOf(3 , 3 , " RED 3:3 BLUE" ))
27+ }
28+ }
29+
30+ // use auto parameterized test method
31+ @Test
32+ fun scoreAndCheckResultWithParameterized () {
33+ game.start()
34+ repeat(redGoals) { game.goal(Game .Team .RED ) }
35+ repeat(blueGoals) { game.goal(Game .Team .BLUE ) }
36+ assertEquals(scores, game.getScore())
37+ game.stop()
38+ }
39+
40+ // instead of manual parameterized
41+ @Test
42+ fun scoreAndCheckResultNormal () {
43+ // first test
44+ game.start()
45+ repeat(2 ) { game.goal(Game .Team .BLUE ) }
46+ assertEquals(" RED 0:2 BLUE" , game.getScore())
47+ game.stop()
48+
49+ // second test
50+ game.start()
51+ repeat(10 ) { game.goal(Game .Team .RED ) }
52+ repeat(5 ) { game.goal(Game .Team .BLUE ) }
53+ assertEquals(" RED 10:5 BLUE" , game.getScore())
54+ game.stop()
55+
56+ // third test
57+ game.start()
58+ repeat(3 ) { game.goal(Game .Team .RED ) }
59+ repeat(3 ) { game.goal(Game .Team .BLUE ) }
60+ assertEquals(" RED 3:3 BLUE" , game.getScore())
61+ game.stop()
62+ }
63+ }
0 commit comments