assert断言

1.assert简介

编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些布尔表达式,是用于对程序进行调试的,是对于执行结构的判断,而不是对于业务流程的判断。

相当于一个if ()语句,如果满足断言的,执行程序,如果不满足,则抛错误

使用情形:断言适用复杂的调式过程。

特性:首先assert需要自行开启(jvm断言默认是关闭的,如何开启等会讲解),然后assert不具有继承性(父类禁止断言,子类可以开启断言)

2.assert使用

1.如何判断自己是否开启断言

原理:如果开启断言,则会调用断言语句。

      public static void main(String[] args) {

  boolean isOk = false;

  assert isOk = true;//如果开启则会调用assert  System.out.println(isOk);//返回false,表示assert开启}

assert断言

2.如何开启断言

1首先打开Run->Run Configurations

assert断言

2)打开Argument并设置-ea(打开断言:-ea   关闭断言:-da)

assert断言

3)进行测试,如果返回true就表示成功

assert断言

3.使用的两种形式

语法1assert expression;               

//expression代表一个布尔类型的表达式,如果为真,就继续正常运行,如果为假,程序退出

语法2assert expression1 : expression2;                

  //expression1是一个布尔表达式,expression2是一个基本类型或者Object类型,如果expression1为真,则程序忽略expression2继续运行;如果expression1为假,则运行expression2,然后退出程序。

1)语法1assert expression;

public class AssertionDemostatic int i = 5; 

    public static void main(String[] args) { 

        assert i==6; 

        System.out.println("如果断言正常,我就被打印");  }  }

结果:

assert断言

 

2)语法2 assert expression1 : expression2;

public class AssertionDemo

    public static void main(String[] args) { 

        int i = 3; 

        switch (i) { 

        case 1:  System.out.println("正常");  break

        case 2:  System.out.println("正常");  break

        case 5:  System.out.println("正常");  break

        default:  assert false:"i的值无效";   //如果i的值不是你想要的,程序就警告退出 

       

        System.out.println("如果断言正常,我就被打印");  }  }

assert断言

4.断言抛出

断言抛出的是一个系统级错误,而不是异常

boolean isRight = 1 > 2;

try {assert isRight:"程序错误";

System.out.println("程序正常");

} catch (AssertionError e) {

//e.printStackTrace(e);//该行编译错误:提示没有异常需要抛出

System.out.println(e.getMessage());

}

assert断言

较常使用:

1.assertEqual(a,b[msg='测试失败时打印的信息']) 断言ab是否相等,相等则测试用例通过。

2.assertNotEqual(a,b[msg='测试失败时打印的信息']): 断言ab是否相等,不相等则测试用例通过。

3.assertTrue(x[msg='测试失败时打印的信息']): 断言x是否True,是True则测试用例通过。

4.assertFalse(x[msg='测试失败时打印的信息'])断言x是否False,是False则测试用例通过

5.assertIs(a,b[msg='测试失败时打印的信息'])断言a是否是b,是则测试用例通过。

6.assertNotIs(a,b[msg='测试失败时打印的信息']): 断言a是否是b,不是则测试用例通过

7.assertIsNone(x[msg='测试失败时打印的信息']): 断言x是否None,是None则测试用例通过。

8.assertIsNotNone(x[msg='测试失败时打印的信息'])断言x是否None,不是None则测试用例通过

9.assertIn(a,b[msg='测试失败时打印的信息'])断言a是否在b中,在b中则测试用例通过。

10.assertNotIn(a,b[msg='测试失败时打印的信息'])断言a是否在b中,不在b中则测试用例通过。

11.assertIsInstance(a,b[msg='测试失败时打印的信息'])断言a是是b的一个实例,是则测试用例通过。

12.assertNotIsInstance(a,b[msg='测试失败时打印的信息'])断言a是是b的一个实例,不是则测试用例通过。