Gauging interest in updating the JavaFX test framework with JUnit 5

Marius Hanl mariushanl at web.de
Sat Sep 25 15:57:35 UTC 2021


   I also really like this move, thanks for that.

   I have also experience with JUnit 5.
   And if there is something where I may can help I'm glad to do so.

   For people who may don't know, this are the features JUnit5 gives
   us and I'm also excited about:
   - assertThrows(..)
   - assertDoesNotThrows(..)
   -> No more tests without any assert... :)

   - Parameterized tests are much easier to write and can be mixed with
   normal tests
     - We can provide a display name
     - We can provide better display names for parameterized test
     - We can decide where the value the parameterized test should use
   come from,
       this gives us the ability to have multiple parameterized tests in
   one class

   More: [1]https://junit.org/junit5/docs/current/user-guide/#writing-test
   s-parameterized-tests

   Example: Hopefully it's ok readable on the mailing list:
   ----- START ------

@DisplayName("A parameterized test with named arguments")
@ParameterizedTest(name = "{0} should match with {1} (lower case)")
@MethodSource("initData")
void testToLowerCase(String string1, String string2) {
    assertEquals(string1, string2.toLowerCase());
}

static Stream<Arguments> initData() {
    return Stream.of(of("aaa", "AAA"), of("bbb", "BBB"), of("ccc", "cCc"));
}

static Arguments of(String string1, String string2) {
    return Arguments.of(string1, string2);
}


   ----- END------

   -- Marius

   Gesendet: Samstag, 25. September 2021 um 15:23 Uhr
   Von: "Kevin Rushforth" <kevin.rushforth at oracle.com>
   An: "Nir Lisker" <nlisker at gmail.com>, "John Hendrikx" <hjohn at xs4all.nl>
   Cc: "openjfx-dev at openjdk.java.net Mailing"
   <openjfx-dev at openjdk.java.net>
   Betreff: Re: Gauging interest in updating the JavaFX test framework
   with JUnit 5
   I also see advantages in moving to JUnit 5, given that we can still
   support both JUint 4 and JUnit 5 in the same project using
   jupiter-vintage (thus avoiding the need to rewrite existing tests).
   Do any other contributors have experiences with JUnit 5 that they could
   share?
   -- Kevin
   On 9/25/2021 12:16 AM, Nir Lisker wrote:
   > I much prefer JUnit 5 to 4, so I'm in favor.
   >
   > On Sat, Sep 25, 2021 at 12:40 AM John Hendrikx <hjohn at xs4all.nl>
   wrote:
   >
   >> Posting this to gauge the interest in adding JUnit 5 as a test
   >> dependency to JavaFX, enabling writing tests with this new version
   of
   >> JUnit while still supporting all JUnit 4 tests.
   >>
   >> A draft PR has been submitted here:
   >> [2]https://github.com/openjdk/jfx/pull/633
   >>
   >> And an issue has been filed here:
   >> [3]https://bugs.openjdk.java.net/browse/JDK-8274274
   >>
   >> Although very personally motivated to be able to write nested unit
   tests
   >> in future JavaFX pull requests, I think this would be a great
   addition
   >> to have in our testing arsenal.
   >>
   >> The main benefits of using JUnit 5:
   >>
   >> Better integration with Java 8, specifically use of Lambda functions
   >> where this would make sense. For example `assertThrows` is really
   useful
   >> and can replace the `expected` parameter in the Test annotation
   >> (although this has also been backported to recent JUnit 4 versions).
   >>
   >> Support for better organization of tests (using Nested) and better
   >> naming. See this image to see Nested and naming in action:
   >>
   >>
   [4]https://user-images.githubusercontent.com/995917/111858133-d6ce0f80-
   8936-11eb-9724-be2c15150590.png
   >>
   >> Better extension system allowing to combine extensions whereas JUnit
   4
   >> only allowed one extension at a time.
   >>
   >> Native support for parameterized tests, repeated tests, nested
   tests,
   >> conditional test execution (by platform or environment for example),
   >> assumptions, test generation and timeouts.
   >>
   >> Please let us know if you'd like to see a newer version of JUnit
   >> included in JavaFX to further ease testing :)
   >>
   >> --John
   >>
   >>
   >>
   >>

References

   1. https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests
   2. https://github.com/openjdk/jfx/pull/633
   3. https://bugs.openjdk.java.net/browse/JDK-8274274
   4. https://user-images.githubusercontent.com/995917/111858133-d6ce0f80-8936-11eb-9724-be2c15150590.png


More information about the openjfx-dev mailing list