我无法理解java中的assert是如何工作的。 我想这样做,如果断言不正确,那么测试应该失败。以下示例应返回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;
}
}
}
答案 0 :(得分:4)
您需要使用-ea
标志启用断言。
你可能不想使用assert
,但是有一个适当的测试框架,它有自己的断言方法。
答案 1 :(得分:2)
条件age < 60
对于age
等于50为真。因此条件将成功,并且断言不会失败。
false
时,断言将失败。
答案 2 :(得分:0)
关于断言的事情要理解,因为断言仅用于开发阶段。它们不是您要交付给客户的解决方案的一部分,而是在开发阶段早期捕获错误的一种方式。这就是为什么您在生产中将其关闭。