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

  • 相关阅读:
    ASP.NET程序设计 ——琴社网站
    CSS3的新特性都有哪些?
    CentOS Linux 系统镜像
    Codeforces Round #804 (Div. 2) 题解(简)
    数字中国下的居住服务数字化
    java之方法和数组
    LDO线性稳压器要不要并联二极管?
    基于BDD的接口自动化框架开箱即用
    【MySQL系列】 MySQL表的增删改查(进阶)
    什么是设计模式?优漫动游
  • 原文地址:https://blog.csdn.net/m0_46628950/article/details/127763249