Hi Ivan, During migration from junit 3 to 4 multiple options was discussed [1]. And the main decision about before/after test method was making as less as possible changes in already existing tests with adding an ability to write new tests using common junit 4 style (i.e. using annotations in new tests).
And it seems that mentioned above correlates with your approach. [1] http://apache-ignite-developers.2346864.n4.nabble.com/Is-it-time-to-move-forward-to-JUnit4-5-td29608.html ср, 20 мар. 2019 г. в 17:38, Ivan Fedotov <ivanan...@gmail.com>: > > Hi Igniters! > > I have a questions according to beforeTest(s)/afterTest(s) methods. I tried > to make them correspond to JUnit 4+ semantics in the context of iep30 [1]. > And I see there two solutions: > > 1. Place test scenario under the Rule annotation as it has already done in > GridAbstractTest [2]. It is a built-in opportunity to extend JUnit > framework. Such case already implemented and demands minimal changes. To > add before and after test logic in the other classes, it is necessary to > override corresponding methods. > > 2. Write before and after test logic with annotations in GridAbstractTest > and all other classes. Such solution is less flexible in comparison with > rules. Moreover, under annotation, a code will be less readable than under > rule. But such approach decreases coupling between classes. > > The main argumentation in favor of the first approach is that there are > minimal changes in code. According to this during migration on other JUnit > versions, there is no need to fix all test files to change imports and > annotations (for instance, in JUnit5 Before/BeforeClass, After/AfterClass > annotations were changed). Changes will affect only GridAbstractTest > class. At the same time, the possibility to use annotations remains. > > Now I started to implement the first approach [3] - specify test scenario > under the Rule annotation and override methods if it is necessary. > Such functionality is similar to the third version, but with 4+ semantics > and with minimal changes during migration. > > What do you think, which approach will be better for the community? > > [1] > https://cwiki.apache.org/confluence/display/IGNITE/IEP-30%3A+Migration+to+JUnit+5 > [2] > https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java#L181 > [3]https://github.com/apache/ignite/pull/6227/files > > -- > Ivan Fedotov. > > ivanan...@gmail.com -- Best regards, Ivan Pavlukhin