我正在尝试为计算器编写第一个单元测试,但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;
答案 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中,包名称已更改,断言位于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
,我尝试通过添加来自不同答案的不同导入来尝试这些解决方案。
但是解决问题的方法只是将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);