0


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

标签: java junit 开发语言

本文转载自: https://blog.csdn.net/m0_46628950/article/details/127763249
版权归原作者 小苏打白 所有, 如有侵权,请联系我们删除。

“【单元测试】java中assert(断言)的使用”的评论:

还没有评论