Cannot find symbol assertEquals
JavaClassTestingJunitSymbolsJava Problem Overview
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;
Java Solutions
Solution 1 - Java
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 https://stackoverflow.com/questions/147454/why-is-using-a-wild-card-with-a-java-import-statement-bad.
Solution 2 - Java
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 - Java
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 - Java
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 - Java
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);
Solution 6 - Java
You have to add the dependency to pom.xml file
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
Solution 7 - Java
my project is based at maven,although I editor junit in the pom.xml,I still can't find junit in my repository,so I download the junit.jar into my repository.It works!you can try it!