使用断言Java

使用断言Java,java,Java,我很难理解java中的断言是如何工作的。 我想这样做,如果断言不正确,那么测试应该失败。下面的示例应该返回false,但测试没有失败。我错过了什么 例如: package test; public class tests { public static void main(String[] args) { // TODO Auto-generated method stub tests s = new tests(); s.approve

我很难理解java中的断言是如何工作的。 我想这样做,如果断言不正确,那么测试应该失败。下面的示例应该返回false,但测试没有失败。我错过了什么

例如:

package test;

public class tests {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        tests s = new tests();
        s.approve(500);
    }
    public   boolean approve(int age)
    {
        assert (age < 60) :"Test Failed" ;
        if (age > 100)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
封装测试;
公开课考试{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
测试s=新测试();
s、 批准(500);
}
公共布尔批准(整数年龄)
{
断言(年龄<60岁):“测试失败”;
如果(年龄>100岁)
{
返回true;
}
其他的
{
返回false;
}
}
}

您需要使用
-ea
标志启用断言


虽然您可能不想使用断言,但是一个合适的测试框架有自己的断言方法。

条件
age<60
对于
age
等于50是正确的。因此,条件将成功,断言不会失败


当条件为
false时,Assert将失败

这是关于Assert的理解,因为它们仅用于开发阶段。它们不是您交付给客户的解决方案的一部分,而是在开发阶段早期发现bug的一种方式。这就是为什么要在生产中关闭它们。

已更新,但它仍然没有失败。
-ea
是否传递给虚拟机?默认情况下,将禁用断言。