为什么要做单元测试

我们几乎都是以这样的顺序做开发:写若干代码,然后运行一下,如果有问题,就做调试,查出 BUG,修改代码,然后再运行一下,直到没有问题,然后接着写代码。

我也一直是这样做的,到现在也是。以前每次我写完 200 行代码,然后就启动服务器运行一下,结果发现问题,我会想:“天哪,我又要大干一场”。于是从 JSP 开始仔细检查代码,直到发现我认为有问题的地方,调试,修改,然后重新启动 web 服务器,打开浏览器,几分钟后发现问题还是没解决,然后又去看代码。

后来每次我写完 20 行代码,我就启动服务器运行一下,结果发现问题。这回我不再从 JSP 页面看起,而是仅仅检查我刚写的那 20 行,并且没多久就找到问题所在。修改完后重新启动服务器,打开浏览器,进入指定的页面,发现问题解决了。这样比以前轻松了不少,但是频繁的启动服务器实在令人厌烦。

再后来我每次写完 20 行代码,我不再启动服务器了,而是写一个 main 方法,将我刚才完成的那个函数运行一次。写这个 main 方法花了我 3 分钟,但是每次运行花不到 5 秒。我运行 main 方法,结果发现问题。经过 3 次修改,main 方法终于输出了我想要的结果。3 次修改花了我不到 10 分钟。于是我启动服务器,发开浏览器,进入指定的页面,发现一切 OK。

随着 main 方法越来越多,我发现这些 main 方法给它所在的类带来了很多不必要的 import。于是我想办法把它们放到另一个类去,提取它们的公共部分做成父类。

现在,做测试已经变得非常简单,而观察 main 方法的输出变成了一件烦人的事情。于是我加上了许多判断语句,判断测试结果中是否有我想要的数据,如果没有则抛出异常。这样我每次运行测试,只要没有抛出异常,我就不用去看输出了。

后来我发现了 JUnit,它所做的事情和我的完全一样,但是它用起来更加方便,比如它可以一下子把所有的测试都运行一遍,而不用像我这样运行一个又一个的 main。

同最初相比,我现在已经轻松很多了。如果您还在想我最初那样做开发,建议您慢慢的改过来。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值