Hi Ivan, Thank you for your response. In this way, I will finish IGNITE-11411-13 tickets with Rule annotation and minimal changes.
чт, 21 мар. 2019 г. в 21:19, Павлухин Иван <vololo...@gmail.com>: > 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 > -- Ivan Fedotov. ivanan...@gmail.com