首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

借助assert快速定位异常

2012-11-07 
借助assert快速定位错误?? 一个测试用例过了很长时间后,我们很有可能忘记里面的处理逻辑,当业务比较复杂时

借助assert快速定位错误

?? 一个测试用例过了很长时间后,我们很有可能忘记里面的处理逻辑,当业务比较复杂时,一旦那个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需要加时就加,至于什么时候需要,就靠自己斟酌了~~~

1 楼 wying 2010-01-24   :D   确实可以很快定位问题!不错!

热点排行