Gauging interest in updating the JavaFX test framework with JUnit 5
Johan Vos
johan at lodgon.com
Sat Sep 25 17:39:59 UTC 2021
I agree.
The availability of assertThrows and assertDoesNotThrows is already a
justification for jUnit 5, imho.
- Johan
Op za 25 sep. 2021 om 17:58 schreef Marius Hanl <mariushanl at web.de>:
> 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