Cannot find symbol assertEquals
Solution 1
assertEquals
is a static method. Since you can't use static methods without importing them explicitly in a static way, you have to use either:
import org.junit.Assert;
...
Assert.assertEquals(...)
or:
import static org.junit.Assert.assertEquals;
...
assertEquals(...)
For @Test
it's a little bit different. @Test
is an annotation as you can see by the @
. Annotations are imported like classes.
So you should import it like:
import org.junit.Test;
Generally avoid using wildcards on imports like import org.junit.*
. For reasons see Why is using a wild card with a Java import statement bad?.
Solution 2
JUnit 5 Jupiter
In JUnit 5 the package name has changed and the Assertions are at org.junit.jupiter.api.Assertions
and Assumptions at org.junit.jupiter.api.Assumptions
So you have to add the following static import
:
import static org.junit.jupiter.api.Assertions.*;
See also http://junit.org/junit5/docs/current/user-guide/#writing-tests-assertions
Solution 3
I am working on JUnit in java 8 environment, using jUnit4.12
for me: compiler was not able to find the method assertEquals, even when I used
import org.junit.Assert;
So I changed assertEquals("addb", string);
toAssert.assertEquals("addb", string);
So if you are facing problem regarding assertEqual
not recognized, then change it to Assert.assertEquals(,);
it should solve your problem
Solution 4
I was having the same problem cannot resolve symbol Assert
i have tried these solutions by adding the different import from the different answers.
- import org.junit.Assert;
- import static org.junit.Assert.*;
- import static org.junit.Assert.assertEquals;
- import static org.junit.jupiter.api.Assertions.*;
- import org.junit.Assert;
but the solution that did the magic was just place the junit-4.12.jar
in the app\lib
ditectory and just build the project, and import like this
import org.junit.Assert;
you can download the junit-4.12.jar
from here
Solution 5
Using IntelliJ 2019.2.4 with a start.sping.io default setup...
import static org.junit.jupiter.api.Assertions.assertEquals;
but now instead of
Assert.assertEquals(expected, actual);
use
assertEquals(expected, actual);
Giome Pool Guy
Updated on July 24, 2022Comments
-
Giome Pool Guy almost 2 years
I'm trying to write my first unit tests for a calculator, but NetBeans says it can't find the symbol
assertEquals
and annotation@Test
.
Should i include something?
I'm using NetBeans 7.3.1 and W7.package calculator; import org.junit.Assert.*; public class UnitTests{ @Test public void checkAdd(){ assertEquals(2, Calculator.rpnCalc(" 2 3 + ")); } }
EDIT: Thanks guys, importing it as static helped. Test annotation required only including
import org.junit.Test;
-
bobbel over 8 yearsIf you're not using a static import directly on the
assertEquals
method, you can't use it in your code without the classAssert
, see my answer! -
creinig almost 5 yearsThe Question contained a hint from 6 years ago that the missing "import static" was the actual problem, so your answer is missing the point I'm afraid.
-
Mohd Qasim over 3 yearsyes @Ali your right we can manage by adding jar file to libs folder
-
Antoine over 2 yearsThis does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. To get notified when this question gets new answers, you can follow this question. Once you have enough reputation, you can also add a bounty to draw more attention to this question. - From Review
-
ever alian over 2 yearswow, this worked. With the JUnit 4 static imports,
import static org.junit.Assert.assertTrue;
I was able to pass the unit test in the IDE. But when I run maven install, it complains Noclassdefound. I replaced withimport static org.junit.jupiter.api.Assertions.*;
and it works like a charm now. Thank you so much.