• 【单元测试】java中assert(断言)的使用


     assert介绍

    • 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。
    • assert:是java,C等语言关键字
    • 当我们测试service层代码时,是一种容错机制,用于验证代码是否符合编码人员的预期
    • 断言表示为一些布尔表达式
    • 可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。

    格式:

    assert [boolean 表达式 : 错误表达式 (日志)]

    例子

    int a = 1;
    int b = 2;
    assert a>b : "错误";

    报错日志

    java.lang.AssertionError: 错误

        at com.pengesoft.example.service.UserServiceMagSvrTest.queryUserById(UserServiceMagSvrTest.java:50)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
        at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
        at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
        at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
        at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)

    需要在idea中开启断言(默认关闭)

    断言在默认情况idea和eclipse下是关闭的,即使声明也不会执行该语句,在运行时启用断言需要使用 -ea参数 。要在JVM系统类中启用和禁用断言可以使用 -ea和 -dsa参数。 

  • 相关阅读:
    【OpenCV】OpenCV 之 n 点透视问题
    数据结构(栈和队列)
    Flutter 学习笔记(01)__从 0 开始创建一个 flutter 项目
    调用第三方系统的签名设计与校验实例讲解与实践
    设计模式学习(二十一):命令模式
    Druid1.2.12版本发布,新增连接池默认配置connectTimeout和socketTimeout详解
    浅淡 C++ 与 C++ 入门
    vue自定义全局指令v-emoji限制input输入表情和特殊字符
    时间序列预测实战(十五)PyTorch实现GRU模型长期预测并可视化结果
    虚拟内存管理
  • 原文地址:https://blog.csdn.net/m0_46628950/article/details/127763249