ChatGPT解决这个技术问题 Extra ChatGPT

Warning: The method assertEquals from the type Assert is deprecated

Since the method Assert.assertEquals is deprecated, which method are we supposed to use now?

The following code:

String arg1 = "test";
String arg2 = "me";

Assert.assertEquals(arg1, arg2);

Gives the following warnings:

Multiple markers at this line The method assertEquals(String, String) from the type Assert is deprecated The type Assert is deprecated


S
Stefan Birkner

You're using junit.framework.Assert instead of org.junit.Assert.


Thanks.... i realized that later after i posted this.... I still think it's worth including here as a question/answer, as it may pop up for others, and now they'll find this when they google it.
This answer to the question linked above provides some additional context.
To future people who also found this useful, please don't comment a thank you - just upvote the question and answer. meta.stackexchange.com/questions/126180/… it's not a big deal, but we don't want this answer getting cluttered.
I am pretty sure this is also deprecated in org.junit.Assert too. I think as is commented on by Tommy.qichang below, it requires an additional parameter for delta (level of precision within which is considered correct).
This question is about comparing Strings and not floats. For Strings it is not deprecated.
X
Xanlantos

this method also encounter a deprecate warning:

org.junit.Assert.assertEquals(float expected,float actual) //deprecated

It is because currently junit prefer a third parameter rather than just two float variables input.

The third parameter is delta:

public static void assertEquals(double expected,double actual,double delta) //replacement

this is mostly used to deal with inaccurate Floating point calculations

for more information, please refer this problem: Meaning of epsilon argument of assertEquals for double values


Delta is the value that the 2 numbers can be off by. So it will assert to true as long as Math.abs(expected - actual) < delta. Use 0 if you want 100% accuracy.
L
Languoguang

When I use Junit4, import junit.framework.Assert; import junit.framework.TestCase; the warning info is :The type of Assert is deprecated

when import like this: import org.junit.Assert; import org.junit.Test; the warning has disappeared

possible duplicate of differences between 2 JUnit Assert classes