论坛首页 Java企业应用论坛

借助assert快速定位错误

浏览 2560 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-24  

   一个测试用例过了很长时间后,我们很有可能忘记里面的处理逻辑,当业务比较复杂时,一旦那个tc跑不过我们将不得不花大量时间去理清业务,如果有些细节我们没有注意到,我们又不得不花大量时间去调试,一上午往往就是这么过的。而如果此时有点提示,那就好办多了,就像Windows登录密码一样,当你忘记时,你可以点一下提示按钮,那些提示信息或许可以马上帮你想起当初设的密码了,测试用例也可以这样做。

   assert方法集的第一个参数可以传一个自定义的信息,我们可以加入一段信息以表明这个错误在什么时候会发生,当发生错误时,这个信息便可以提示我们快速定位错误,而这个信息只会在assert失败时才输出。

当我们要验证缓存中存在数据时,我们可以这样写:

//清除数据库操作………
UserDO udo = userInfoService.getUserByNick(nick);
assertNotNull(“缓存不存在该用户对象”,udo);

一旦缓存真没数据,抛出的异常信息不仅仅是AssertionError,而且还会包含一段说明字符串

java.lang.AssertionError: 缓存中不存在该用户对象
 at org.junit.Assert.fail(Assert.java:92)
 at org.junit.Assert.assertTrue(Assert.java:44)

当你看到这个信息,至少马上可以想到是缓存出问题了。如果没有这种信息,时间一久排查原因将非常困难。当然,并不是所有的assert都要加这种信息,那样好像比较痛苦,因为我们有很多assert!当你觉得这个assert需要加时就加,至于什么时候需要,就靠自己斟酌了~~~

   发表时间:2010-01-24  
:D   确实可以很快定位问题!不错!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics