找不到符号assertEquals

时间:2013-12-17 10:26:53

标签: java class testing junit symbols

我正在尝试为计算器编写第一个单元测试,但NetBeans表示无法找到符号assertEquals和注释@Test。 我应该包括什么吗? 我正在使用NetBeans 7.3.1和W7。

package calculator;

import org.junit.Assert.*;

public class UnitTests{

    @Test
    public void checkAdd(){
        assertEquals(2, Calculator.rpnCalc(" 2 3 + "));
    }
}
编辑:谢谢大家,将其导入静态帮助。  仅需要测试注释包括

  

import org.junit.Test;

6 个答案:

答案 0 :(得分:53)

assertEquals是一种静态方法。由于无法以静态方式显式导入静态方法而无法使用静态方法,因此必须使用:

import org.junit.Assert;
...
Assert.assertEquals(...)

或:

import static org.junit.Assert.assertEquals;
...
assertEquals(...)

对于@Test,它有点不同。 @Test@注释,您可以看到import org.junit.Test; 。注释像类一样导入。

所以你应该像以下一样导入它:

import org.junit.*

通常避免在{{1}}等导入上使用通配符。有理由,请参阅Why is using a wild card with a Java import statement bad?

答案 1 :(得分:6)

JUnit 5 Jupiter

在JUnit 5中,包名称已更改,断言位于org.junit.jupiter.api.Assertions,假设位于org.junit.jupiter.api.Assumptions

所以你必须添加以下static import

import static org.junit.jupiter.api.Assertions.*;

另见http://junit.org/junit5/docs/current/user-guide/#writing-tests-assertions

答案 2 :(得分:4)

我正在使用jUnit4.12

在java 8环境中使用JUnit

对我来说:编译器无法找到方法assertEquals,即使我使用了
    import org.junit.Assert;

所以我将章assertEquals("addb", string);更改为Assert.assertEquals("addb", string);

因此,如果您遇到有关assertEqual无法识别的问题,请将其更改为Assert.assertEquals(,);它应解决您的问题

答案 3 :(得分:0)

您必须将依赖项添加到pom.xml文件

<dependency>
  <groupId>junit</groupId>          
  <artifactId>junit</artifactId>            
  <version>4.12</version>       
</dependency>

答案 4 :(得分:0)

我遇到了同样的问题cannot resolve symbol Assert,我尝试通过添加来自不同答案的不同导入来尝试这些解决方案。

  1. 导入org.junit.Assert;
  2. 导入静态org.junit.Assert。*;
  3. 导入静态org.junit.Assert.assertEquals;
  4. 导入静态org.junit.jupiter.api.Assertions。*;
  5. 导入org.junit.Assert;

但是解决问题的方法只是将junit-4.12.jar放在app\lib领域中,然后构建项目,然后像这样导入

import org.junit.Assert;

您可以从here下载junit-4.12.jar

答案 5 :(得分:0)

使用IntelliJ 2019.2.4和start.sping.io默认设置...

import static org.junit.jupiter.api.Assertions.assertEquals;

但现在代替

Assert.assertEquals(expected, actual);

使用

assertEquals(expected, actual);