使用断言Java
我很难理解java中的断言是如何工作的。 我想这样做,如果断言不正确,那么测试应该失败。下面的示例应该返回false,但测试没有失败。我错过了什么 例如:使用断言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
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
是否传递给虚拟机?默认情况下,将禁用断言。