[ https://issues.apache.org/jira/browse/LUCENE-10662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17571453#comment-17571453 ]
Marios Trivyzas edited comment on LUCENE-10662 at 7/26/22 2:14 PM: ------------------------------------------------------------------- {quote}I wouldn't rename any methods (assertEquals becomes assertEquality) - this will be even more confusing for downstream users. I'd remove the extend and assertEquals* methods from LuceneTestCase and move those methods into a separate class (like LuceneAssertions or something) - then the upgrade would be about importing them statically from junit's Assert or LuceneAssertions. {quote} I don't get how we can resolve a few issues: for example the *private void assertEquals(Sort a, Sort b)* in {*}TestSort{*}, if it remains like that and we also *import static org.junit.Assert.assertEquals* in the same class, the compiler doesn't know which one is using unless we use *Assert.assertEquals()* everwhere else, to actually use the junit one. The most important point, is what you mentioned, about all the projects that use {*}LuceneTestCase{*}, so let's see what other people also think about this. was (Author: matriv): {quote} I wouldn't rename any methods (assertEquals becomes assertEquality) - this will be even more confusing for downstream users. I'd remove the extend and assertEquals* methods from LuceneTestCase and move those methods into a separate class (like LuceneAssertions or something) - then the upgrade would be about importing them statically from junit's Assert or LuceneAssertions. {quote} I don't get how we can resolve a few issues: for example the *private void assertEquals(Sort a, Sort b)* in {*}TestSort{*}, if it remains like that and we also *import static org.junit.Assert.assertEquals* in the same class, the compiler doesn't know which one is using unless we use *Assert.assertEquals()* everwhere else, to actually use the junit one. The most important point is what you mentioned about all the projects that use {*}LuceneTestCase{*}, so let's see what other people also think about this. > Make LuceneTestCase not extending from org.junit.Assert > ------------------------------------------------------- > > Key: LUCENE-10662 > URL: https://issues.apache.org/jira/browse/LUCENE-10662 > Project: Lucene - Core > Issue Type: Test > Components: general/test > Reporter: Marios Trivyzas > Priority: Major > Time Spent: 20m > Remaining Estimate: 0h > > Since *LuceneTestCase* is a very useful abstract class that can be extended > and used by many projects, having it extending *org.junit.Assert* limits all > users to exclusively use the static methods of {*}org.junit.Assert{*}. In our > project we want to use [https://joel-costigliola.github.io/assertj] where the > main method to call is *org.assertj.core.api.Assertions.assertThat* which > conflicts with the deprecated {*}org.junit.Assert.assertThat{*}, recognized > by default by the compiler. So one can only use assertj if on every call uses > fully qualified name for the *assertThat* method, i.e. > > {code:java} > org.assertj.core.api.Assertions.assertThat(myObj.name()).isEqualTo(expectedName) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org