Cannot find symbol assertEquals

JavaClassTestingJunitSymbols

Java 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);
to
Assert.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.

  1. import org.junit.Assert;
  2. import static org.junit.Assert.*;
  3. import static org.junit.Assert.assertEquals;
  4. import static org.junit.jupiter.api.Assertions.*;
  5. 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!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGiome Pool GuyView Question on Stackoverflow
Solution 1 - JavabobbelView Answer on Stackoverflow
Solution 2 - JavaisapirView Answer on Stackoverflow
Solution 3 - JavaAkshay Vijay JainView Answer on Stackoverflow
Solution 4 - JavaAli TamoorView Answer on Stackoverflow
Solution 5 - JavaPaolo SecciView Answer on Stackoverflow
Solution 6 - JavaTu MinhView Answer on Stackoverflow
Solution 7 - Java江旭晖View Answer on Stackoverflow