GitHub user mureinik opened a pull request:

    https://github.com/apache/commons-scxml/pull/3

    Upgrade to JUnit jupiter

    This PR migrates the project to the modern JUnit Jupiter 5.3.1 testing 
framework.
    Since JUnit Jupiter is not backwards compatible to JUnit 4.x, or even JUnit 
Vintage 5.x, the patch is a tad large, although most of the changes are just 
cosmetic.
    
    1. Maven changes:
         1. `org.junit.jupiter:junit-jupiter-api` was added to provide the new 
APIs used.
         1. `org.junit.jupiter:junit-jupiter-engine` was added as a testing 
engine. Its presence allows `maven-surefire-plugin` to use the Jupiter provider 
in order to execute tests.
         1. `junit:junit` was removed, as it's no longer in use.
         1. The parent module, `org.apache.commons:commons-parent` was upgraded 
to the latest version, `47`, in order to consume 
`org.apache.maven.plugins:maven-surefire-plugin:2.22.0` that natively supports 
Jupiter tests.
    
    1. Annotations:
         1. `org.junit.jupiter.api.Test` was used as a drop in replacement for 
`org.juit.Test` without arguments. See 3.b for handling of the `@Test` 
annotation with an `expected` argument.
         1. `org.junit.jupiter.api.BeforeEach` was used as an drop in 
replacement for `org.junit.Before`.
         1. `org.junit.jupiter.api.AfterEach` was used as a drop in replacement 
for `org.junit.After`.
         1. `org.junit.jupiter.api.BeforeAll` was used as a drop in replacement 
for `org.junit.BeforeClass`.
         1. `org.junit.jupiter.api.AfterAll` was used as a drop in replacement 
for `org.junit.AfterClass`.
    
    3. Assertions:
         1. `org.junit.jupiter.api.Assertions`' methods were used as a drop in 
replacements for `org.junit.Assert`'s methods with the same name in the simple 
case of an assertion without a message. In the case of an assertion with a 
message, `org.junit.jupiter.api.Assertions`' methods were used, but the 
argument order was changed - `Assert`'s methods take the message as the first 
argument, while `Assertions`' methods take the message as the last argument.
        1. `org.junit.jupiter.api.Assertions#assertThrows` was used to assert a 
specific exception was thrown instead of an `org.junit.Test` annotation with an 
`expected` argument. This technique has a side bonus of making the tests 
slightly stricter, as now they assert the exception was thrown from a specific 
line and prevent false posivites where the test's "set-up" code accidentally 
threw that exception. The `throws` clauses of these methods were cleaned up 
from exceptions that can no longer be thrown in order to avoid compilation 
warnings.
    
    4. Miscelanious
        1. The redundant `main` methods in the test classes of the 
`org.apache.commons.scxml2.env.javascript` package were removed, and the 
Javadoc was updated accordingly.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/mureinik/commons-scxml junit-jupiter

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/commons-scxml/pull/3.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3
    
----
commit 3d133ce5490a26252622c14d34460501770506e0
Author: Allon Mureinik <allon@...>
Date:   2018-10-04T09:55:34Z

    Remove unused main methods
    
    Remove unused main methods of in the
    org.apache.commons.scxml2.env.javascript package. These tests do not
    need tham, as they are run via maven-surefire-plugin which picks up
    the annotated tests.

commit 73462b0538755f838ea47fd6c83e31b393e6762d
Author: Allon Mureinik <allon@...>
Date:   2018-10-04T09:56:36Z

    javadoc fix
    
    Fix org.apache.commons.scxml2.env.javascript tests' javadocs -
    the test methods are clearly annotaed with JUnit 4 annotations, and
    therefore these are not a JUnit 3 tests.

commit 521518be32d3b1ab1f28e3509347702c1d7a3c8d
Author: Allon Mureinik <allon@...>
Date:   2018-10-04T11:04:03Z

    org.apache.commons:commons-parent dependency
    
    Upgraded to the latest available org.apache.commons:commons-parent in
    order to consume the latest maven-surefire-plugin required for the JUnit
    Jupiter upgarde.

commit 8444b30a11e87e8b8e990d9c145ea4b1e617a0d0
Author: Allon Mureinik <allon@...>
Date:   2018-10-04T10:59:39Z

    Upgrade to JUnit Jupiter
    
    This PR migrates the project to the modern JUnit Jupiter 5.3.1
    testing framework.
    Since JUnit Jupiter is not backwards compatible to JUnit 4.x, or even
    JUnit Vintage 5.x, the patch is a tad large, although most of the
    changes are just cosmetic.
    
    1. Maven changes:
     a. org.junit.jupiter:junit-jupiter-api was added to provide the new
        APIs used.
     b. org.junit.jupiter:junit-jupiter-engine was added as a testing
        engine. Its presence allows maven-surefire-plugin to use the
        Jupiter provider in order to execute tests.
     c. junit:junit was removed, as it's no longer in suse.
    
    2. Annotations:
     a. org.junit.jupiter.api.Test was used as a drop in replacement for
        org.juit.Test without arguments. See 3.b for handling of the
        @Test annotation with an "expected" argument.
     b. org.junit.jupiter.api.BeforeEach was used as an drop in
        replacement for org.junit.Before.
     c. org.junit.jupiter.api.AfterEach was used as a drop in replacement
        for org.junit.After.
     d. org.junit.jupiter.api.BeforeAll was used as a drop in replacement
        for org.junit.BeforeClass.
     e. org.junit.jupiter.api.AfterAll was used as a drop in replacement
        for org.junit.AfterClass.
    
    3. Assertions:
     a. org.junit.jupiter.api.Assertions' methods were used as a drop in
        replacements for org.junit.Assert's methods with the same name in
        the simple case of an assertion without a message.
        In the case of an assertion with a message,
        org.junit.jupiter.api.Assertions' methods were used, but the
        argument order was changed - Assert's methods take the message as
        the first argument, while Assertions' methods take the message as
        the last argument.
     b. org.junit.jupiter.api.Assertions#assertThrows was used to assert
        a specific exception was throws instead of an org.junit.Test
        annotation with an "expected" argument. This technique has a side
        bonus of making the tests slightly stricter, as now they assert the
        exception was thrown from a specific line and prevent false
        posivites where the test's "set-up" code accidentally threw that
        exception. The throws clauses of these methods were cleaned up from
        exceptions that can no longer be thrown in order to avoid
        compilation warnings.

----


---

Reply via email to