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

时间:2016-11-14 10:16:41

标签: java junit tdd junit4

我对JUnit逻辑有疑问。

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

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

    assert(true);

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

}

并且,正如预期的那样,它是绿色的,因为断言()条件被设置为 true

然后我使用:

更改它
assert(false);

如果条件为假,运行测试时它也会再次变为绿色。

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

但那么:简单的 assert()方法的确切目的是什么?我何时使用它以及如何使用它?

2 个答案:

答案 0 :(得分:2)

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

要执行JUnit断言,请导入合适的类: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");

  }
}

答案 1 :(得分:0)

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

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

java -ea MyClass