这是我的第一个JUnit测试,我不明白为什么不抛出AssertionError
,我做错了什么?
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.JUnitCore;
public class MyFirstJUnitTest {
public static void main(String[] args) {
JUnitCore.runClasses(MyFirstJUnitTest.class);
}
@Test
public void simpleAdd() {
int a = 5;
int b = 3;
int c = a + b; //8
Assert.assertTrue(c == 7);
}
}
答案 0 :(得分:2)
要run JUnit from the command line,您需要调用main方法。
JUnitCore.main("MyFirstJUnitTest");
除非您需要以编程方式访问结果,否则不应使用JUnitCore
,例如,如果您正在为IDE编写JUnit插件:
JUnitCore.runClasses(MyFirstJUnitTest.class).getFailures();
JUnitCore
捕获任何异常并将它们存储在Result
中,这是您的JUnit插件将读取的类。
答案 1 :(得分:1)
AssertionError
被测试运行者捕获。
通常,使用AssertionError
关键字进行的断言失败会引发assert
。这样:
public static void main(String[] args) {
int a = 5;
int b = 3;
int c = a + b; //8
assert c == 7;
}
在启用断言检查的情况下运行时,按预期抛出AssertionError
。
答案 2 :(得分:-1)
断言不是用于抛出异常,而是用于检查您的条件是否正确。因此,这将告诉您,出现问题(在IDE中的JUnit视图中),但不会抛出任何异常。