Java JUnit 怎么用

你在写代码时,肯定踩过“改了一行逻辑,整个功能崩了”的坑吧?别着急,学会用JUnit就能把这种风险掐死在测试阶段。

什么是JUnit?就像代码的“试吃员”

简单说,JUnit就是Java里专门用来做单元测试的工具——你可以把它理解成给代码做“试吃实验”:比如做蛋糕前,先拿一小团面糊试味,确认甜度、蓬松度都达标,再烤整个蛋糕,而不是等烤完才发现味道不对。

Java JUnit 怎么用

它不需要你写复杂的判断逻辑,只要按规则写好测试代码,它就能自动帮你检查:输入的内容能不能被正确处理?不同场景下结果对不对?比如你写了一个计算两个数相加的方法,用JUnit就能快速验证“2+3是不是等于5”“0+0是不是等于0”这类情况,不用手动在主方法里反复打印结果。

怎么快速上手写第一个JUnit测试?

现在用的都是JUnit 5版本,配置也简单,如果你用IDEA,新建Java项目后,只要在pom.xml(Maven项目)里加一行依赖,或者直接在IDEA里搜“JUnit 5”导入依赖就行。

写测试的步骤特别好记,就三步:

  • 先写要测试的核心方法:比如我们做一个“判断字符串是不是空”的方法,代码就写在StringUtils.java里,核心逻辑是“字符串为null或者长度为0就算空”。
  • 新建一个测试类:别把测试代码和业务代码混在一起,规范是在项目里建个test文件夹,里面放测试类,命名一般是“业务类名+Test”,比如StringUtilsTest。
  • 写测试方法:在测试类里加@Test注解,里面写你要验证的情况。比如你要测“空字符串”“空格字符串”“正常字符串”这三种情况,就分别写三个断言——断言就是“告诉JUnit,我预期这个结果应该等于什么”,如果不符合,JUnit就会标红告诉你哪里错了。

举个实际的小例子:

业务方法是public static boolean isEmpty(String str),测试方法里就写:

assertEquals(true, StringUtils.isEmpty(""))(测试空字符串,预期结果是true)

assertEquals(false, StringUtils.isEmpty("Java"))(测试非空字符串,预期结果是false)

运行这个测试,只要有一个断言不成立,JUnit就会立刻告诉你,不用你自己找哪里错了,效率比手动测试高太多。

日常用的几个实用小技巧

刚入门不用学复杂的功能,先记住这几个够用的:

  • 别只测“正常情况”:比如测试“用户输入的年龄是负数”“字符串是特殊符号”这类边界场景,很多bug都是在这种特殊情况里冒出来的。
  • 用@BeforeEach减少重复代码:如果每个测试方法都要新建同一个对象,比如要测的工具类实例,就把新建对象的代码放在@BeforeEach注解的方法里,每次跑测试前会自动执行,不用每个方法都写一遍。
  • 失败了别慌看提示:JUnit的报错会直接告诉你“哪个方法错了,预期结果是什么,实际是什么”,比如你把assertEquals(true, ...)写成了false,它会直接说“预期是false,实际是true”,改起来特别快。

很多新手觉得写测试是“额外工作量”,但实际项目里,改代码后跑一遍JUnit,就能确认功能没被破坏,比反复手动点页面测试靠谱多了——尤其是团队合作时,每个人改完代码,跑一遍自己的测试,就能避免把问题推给别人。

上一篇 PHP 如何生成图片