Search code examples
javaclasstestingjunitsymbols

Cannot find symbol assertEquals


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;


Solution

  • 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?.