Thank you for your research about automated toolings, Lari.

As you said, if we decide to migrate, the way how we migrate it is important. 
There is a compromise way worth discussing. AssertJ is used for assertion in 
new tests, while module based migration can be used in the migration process of 
old test cases, which can greatly reduce the probability of conflict.




- Roc Marshal.

At 2022-03-17 03:46:28, "Lari Hotari" <lhot...@apache.org> wrote:
>I support the switch to AssertJ.
>
>Some automated tooling might be useful for doing the bulk of the migration.
>
>AssertJ provides some scripts for the migration:
>https://joel-costigliola.github.io/assertj/assertj-core-converting-testng-assertions-to-assertj.html
>
>There's also more sophisticated tools such as OpenRewrite  for automated 
>refactorings. There are "recipes" for using OpenRewrite to migrate from Junit 
>asserts to AssertJ.
>https://docs.openrewrite.org/reference/recipes/java/testing/assertj/junittoassertj
>Junit asserts are slightly different than TestNG asserts (parameter order is 
>different) so it would require modifying the OpenRewrite recipes to use them 
>for TestNG -> AssertJ refactoring.
>
>Before we make the switch it would be useful to experiment with the tooling to 
>see how quickly we could migrate the code base to use AssertJ. 
>
>Migrating all at-once would result in a lot merge conflicts in all in-progress 
>pull requests and it would make cherry-picking changes to maintenance branches 
>more painful. 
>Do we want to go down that path? 
>An alternative would be to introduce AssertJ as a new library and use it only 
>for new tests. 
>Perhaps we could start with that?
>
>-Lari
>
>On 2022/03/16 14:03:03 Roc Marshal wrote:
>> Dear devs,
>> 
>> I'd like to start a discussion to migrate the TestNg assertion  to AssertJ 
>> assertion.
>> 
>> Some main motivations are:
>> - AssertJ is a pure streaming API with more elegant coding and higher 
>> readability.
>> - Making full use of Java 8 Lambdas for writing easier to read tests and a 
>> better performing way of composing failure messages.
>> - Better exception verification
>> - Powerful assertion function from AssertJ.
>> - Compatible with popular testing frameworks, including TestNG.
>> 
>> 
>> There are some links with concise documentation:
>> What is AssertJ https://assertj.github.io/doc/#overview-what-is-assertj
>> 
>> Custom assertions extension 
>> https://assertj.github.io/doc/#assertj-core-custom-assertions 
>> Core assertion guide 
>> https://assertj.github.io/doc/#assertj-core-assertions-guide 
>> 
>> Let me know what you think and I'm happy to answer all questions. Any 
>> suggestions are appreciated.
>> 
>> 
>> Best,
>> 
>> Roc Marshal.

Reply via email to