Links

JUnit 5

Parameterised Tests

  • Some examples from Excel library,
    static List<ExcelWriter> getTestWorkbookWriters() {
    val streaming = testWriter().isStreaming(true).build();
    val nonStreaming = testWriter().isStreaming(false).build();
    ​
    return Arrays.asList(streaming, nonStreaming);
    }
    ​
    @ParameterizedTest
    @MethodSource("getTestWorkbookWriters")
    void testSimpleWritesOfOscars(ExcelWriter writer) {
    val sheetWriter = writer.getRowDataWriter("Oscars");
    ​
    sheetWriter.writeRow(Arrays.asList("Name", "Year", "Movie"));
    sheetWriter.writeRow(Arrays.asList("Warner Baxter", 1929, "In Old Arizona"));
    ​
    ExcelSheetWriter sw = (ExcelSheetWriter) sheetWriter;
    val sheet = sw.getSheet();
    assertEquals(5, sheet.getLastRowNum() + 1); // number of rows = last row num (zero based) + 1
    }
  • TODO: To test exceptions
JUnit parameterised tests still feel quite constrained compared to flexible ScalaTest etc. Thus for a big Java project, it might be worth looking at Groovy based Spock framework for testing.
Last modified 3yr ago