JUnit测试 - assertTrue不抛出异常

时间:2011-11-04 14:41:34

标签: unit-testing exception assert junit4

这是我的第一个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);
    }
}

3 个答案:

答案 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视图中),但不会抛出任何异常。