JUnit 中的 assert() 方法究竟是如何工作的?

How exactly works the assert() method in JUnit?

我对 JUnit 逻辑有疑问。

我已经实现了这个简单的方法:

@Test
public void testBasic() {
    System.out.println("testBasic() START");

    assert(true);

    System.out.println("testBasic() END");

}

而且,正如预期的那样,它是绿色的,因为 assert() 条件设置为 true.

然后我将其更改为:

assert(false);

并且 运行 如果条件为假,则测试它再次为绿色。

阅读文档我知道我还有 assertTrue() 来测试条件是真还是假,所以我可以使用它。

但是那么:简单的 assert() 方法的确切目的是什么?什么时候用,怎么用?

您在那里使用 Java 断言,而不是 JUnit 的断言。

Java 默认禁用断言。您需要使用 -ea 命令行选项启用它们:

java -ea MyClass

assert 是一个 Java 关键字,它引用 Java assertions 而不是对 JUnit 中的 assertTrue/False/Equals...() 方法的引用。 这是断言文档:http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html

要执行 JUnit 断言,请导入合适的 class : org.junit.Assert 并做:

import org.junit.Assert;
import org.junit.Test;

public class YourTestClass{
  @Test
  public void testBasic() {
    System.out.println("testBasic() START");

    Assert.assertTrue(true); // pass
    Assert.assertFalse(true); // fail

    System.out.println("testBasic() END");

  }
}