[ 
https://issues.apache.org/jira/browse/LUCENE-10662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17571418#comment-17571418
 ] 

Dawid Weiss commented on LUCENE-10662:
--------------------------------------

Changing these methods will require a huge follow-up and cleanup in any other 
project that uses LuceneTestCase (and there are many). I don't think people 
will be happy with it (even though my heart is with you on assertj - I also 
prefer it to what's in hamcrest/junit). 

Even if people agree to change it, looking at the patch, 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.

Again, I'm not convinced this is a necessary improvement. I've lived with an 
explicit Assertions.* call from assertj - this is fine and explicit. And even 
used within Lucene code itself:

[https://github.com/apache/lucene/blob/main/lucene/distribution.tests/src/test/org/apache/lucene/distribution/TestModularLayer.java#L117]

> 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

Reply via email to