Skip to content

Commit 6e4c9d7

Browse files
committed
Start migration to junit 6
1 parent 98339be commit 6e4c9d7

File tree

19 files changed

+144
-66
lines changed

19 files changed

+144
-66
lines changed

examples/junit4/config.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"description": {
3+
"names": {
4+
"nl": "Simpel voorbeeld",
5+
"en": "Simple example"
6+
}
7+
},
8+
"evaluation": {
9+
"filename": "Simple.java",
10+
"handler": "java"
11+
}
12+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Implementeer [deze interface](media/workdir/SimpleInterface.java).
2+
3+
Je kan deze [eenvoudige testen](media/SimpleTest.java) lokaal uitvoeren.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../evaluation/SimpleTest.java
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../workdir
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import java.util.Random;
2+
import java.util.List;
3+
import java.util.ArrayList;
4+
5+
import org.junit.Assert;
6+
import org.junit.Test;
7+
import org.junit.runner.RunWith;
8+
import org.junit.runners.Parameterized;
9+
10+
import dodona.junit.TabTitle;
11+
12+
/**
13+
* A more complex test class.
14+
*
15+
* Runs a larger number of generated tests.
16+
*/
17+
@RunWith(Parameterized.class)
18+
@TabTitle("Random Tests") // Giving a name other than 'Test' to the tab in Dodona.
19+
public class GeneratedTest {
20+
21+
public static final int TEST_COUNT = 50;
22+
public static final long SEED = 42; // Fixed random seed to get the same tests for every student.
23+
public static final int TEST_MAX = 10000;
24+
25+
/** This method generates a number of tests. */
26+
27+
@Parameterized.Parameters(name = "{index} | addOne({0}) == {1}")
28+
public static Iterable<Object[]> data() {
29+
List<Object[]> data = new ArrayList<>();
30+
Random random = new Random(SEED);
31+
for(int i = 0; i < TEST_COUNT; i++) {
32+
int testNumber = random.nextInt(TEST_MAX);
33+
data.add(new Object[] { testNumber, testNumber + 1 });
34+
}
35+
return data;
36+
}
37+
38+
/* Each test, in order, is filled in here and run. */
39+
@Parameterized.Parameter(value=0) public int testNumber;
40+
@Parameterized.Parameter(value=1) public int expected;
41+
42+
private static SimpleInterface studentSolution;
43+
44+
@Test
45+
public void test() {
46+
if(studentSolution == null) studentSolution = new Simple();
47+
Assert.assertEquals(expected, studentSolution.addOne(testNumber));
48+
}
49+
50+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import org.junit.Assert;
2+
import org.junit.Test;
3+
4+
public class SimpleTest {
5+
6+
private SimpleInterface solution;
7+
8+
@Test
9+
public void testZero() {
10+
if(solution == null) solution = new Simple();
11+
Assert.assertEquals(1, solution.addOne(0));
12+
}
13+
14+
@Test
15+
public void testOne() {
16+
if(solution == null) solution = new Simple();
17+
Assert.assertEquals(2, solution.addOne(1));
18+
}
19+
20+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
import org.junit.runners.Suite;
3+
import org.junit.runner.RunWith;
4+
5+
@RunWith(Suite.class)
6+
@Suite.SuiteClasses({
7+
// List of tests to run.
8+
SimpleTest.class,
9+
GeneratedTest.class,
10+
})
11+
public class TestSuite {}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
public class Simple implements SimpleInterface {
2+
3+
public int addOne(int i) {
4+
return i + 1;
5+
}
6+
7+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public interface SimpleInterface {
2+
3+
int addOne(int i);
4+
5+
}
Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1-
import java.util.Random;
2-
import java.util.List;
3-
import java.util.ArrayList;
4-
5-
import org.junit.Assert;
6-
import org.junit.Test;
7-
import org.junit.runner.RunWith;
8-
import org.junit.runners.Parameterized;
9-
101
import dodona.junit.TabTitle;
2+
import org.junit.jupiter.api.Assertions;
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.params.Parameter;
5+
import org.junit.jupiter.params.ParameterizedClass;
6+
import org.junit.jupiter.params.provider.MethodSource;
7+
8+
import java.util.ArrayList;
9+
import java.util.List;
10+
import java.util.Random;
1111

1212
/**
1313
* A more complex test class.
1414
*
1515
* Runs a larger number of generated tests.
1616
*/
17-
@RunWith(Parameterized.class)
17+
@ParameterizedClass
18+
@MethodSource("data")
1819
@TabTitle("Random Tests") // Giving a name other than 'Test' to the tab in Dodona.
1920
public class GeneratedTest {
2021

@@ -24,7 +25,7 @@ public class GeneratedTest {
2425

2526
/** This method generates a number of tests. */
2627

27-
@Parameterized.Parameters(name = "{index} | addOne({0}) == {1}")
28+
//@Parameters(name = "{index} | addOne({0}) == {1}")
2829
public static Iterable<Object[]> data() {
2930
List<Object[]> data = new ArrayList<>();
3031
Random random = new Random(SEED);
@@ -36,15 +37,15 @@ public static Iterable<Object[]> data() {
3637
}
3738

3839
/* Each test, in order, is filled in here and run. */
39-
@Parameterized.Parameter(value=0) public int testNumber;
40-
@Parameterized.Parameter(value=1) public int expected;
40+
@Parameter(value=0) public int testNumber;
41+
@Parameter(value=1) public int expected;
4142

4243
private static SimpleInterface studentSolution;
4344

4445
@Test
4546
public void test() {
4647
if(studentSolution == null) studentSolution = new Simple();
47-
Assert.assertEquals(expected, studentSolution.addOne(testNumber));
48+
Assertions.assertEquals(expected, studentSolution.addOne(testNumber));
4849
}
4950

5051
}

0 commit comments

Comments
 (0)