• 【单元测试】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参数。 

  • 相关阅读:
    【Windows 常用工具系列 11 -- 福昕PDF搜索高亮过的文本】
    Windows未正确加载怎么办?
    运筹学基础【五】 之 线性规划
    M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑
    linux系统中三个重要的结构体
    NUAA操作系统OS实验及上机考试记录
    FreeSWITCH mrcp-v2小记
    【计算机网络】物理层:物理层要解决哪些问题?
    自动装配说明
    Linux权限管理【理论讲解+实操演示】
  • 原文地址:https://blog.csdn.net/m0_46628950/article/details/127763249