`
lazyman333
  • 浏览: 9485 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

借助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   确实可以很快定位问题!不错!

相关推荐

    C# 日志Log打印类,c++打印日志,C#

    在实际项目中,一个良好的日志系统不仅能够帮助开发者快速定位和解决问题,还可以为性能调优、安全审计等提供宝贵数据。因此,理解和掌握日志打印技术是每个程序员必备的技能之一。 压缩包中的"C# 日志Log打印类....

    编程精粹 - Microsoft编写优质无错C程序秘诀.zip

    了解如何设置编译选项,如优化级别、警告级别,以及如何利用调试器进行断点设置、单步执行、查看变量值等技巧,能够帮助快速定位和修复错误。 三、代码规范与风格 遵循一定的编码规范和风格,可以提高代码的可读性...

    使用C语言开发的小游戏超级玛丽源码,适合刚入门学习C语言编程的爱好者

    同时,良好的调试信息和断点设置可以帮助开发者快速定位和修复问题。 通过研究这个C语言实现的超级玛丽源码,初学者不仅可以了解游戏开发的基本流程,还能提升C语言编程技能,包括函数调用、数据结构、内存管理等。...

    c语言实现的超级玛丽游戏源(C语言课程设计).rar

    10. **错误处理和调试**:良好的错误处理机制能帮助开发者快速定位和修复问题。C语言提供了assert宏和其他错误处理方法。 通过分析这个C语言实现的超级玛丽游戏源码,我们可以学习到C语言在游戏开发中的实际应用,...

    C与C++中的异常处理

    如果表达式为假(即逻辑错误),它会打印一条错误消息并调用`abort()`,帮助开发者定位问题。 7. `longjmp` 和 `setjmp`: 这两个函数组合起来可以实现非局部跳转,即在遇到错误时跳回到之前保存的程序状态。它们...

    C语言项目开发 MP3音乐播放器

    - 在开发过程中,良好的错误处理机制能帮助快速定位问题。学会使用`fprintf(stderr)`进行错误输出,以及利用`assert`进行断言检查。 - 使用调试工具如GDB进行程序调试,理解堆栈跟踪和变量值查看,对于优化代码和...

    c语言实现图书信息管理系统

    4. **排序和查找算法**:为了快速定位和检索图书,系统可能需要实现排序算法(如冒泡、插入、选择或快速排序)和查找算法(如线性搜索或二分搜索)。如果数据量较大,还可以考虑哈希表或B树等高级数据结构。 5. **...

    基于C语言的自定制脚本语言设计与研究.pdf

    文档还提到了调试和错误处理的相关内容,如`assert()`和`DBG_panic()`,这暗示了自定制脚本语言在设计过程中需要提供有效的错误检测和处理机制,以便于开发者能够快速定位问题并修复。 在实现自定义脚本语言时,...

    计算机等级考试二级c历年真题

    10. **考试形式与时间管理**: 二级C考试通常包括理论知识和上机编程两部分,考生需要熟悉考试规则,合理安排答题时间,特别是在上机编程环节,能够快速定位问题并编写出正确的代码。 总之,这个压缩包提供的真题及...

    商品管理系统c语言编写

    使用assert宏进行断言检查,以及printf结合条件语句进行错误提示,都是常见的错误处理策略。同时,学会使用调试工具如GDB,可以帮助定位并修复程序中的bug。 八、多线程与并发 在大型系统中,可能会考虑使用多线程...

    selenium+java+testng+maven

    例如,如果某个测试用例失败了,可以直接查看报告中的错误信息和堆栈跟踪,以便快速定位问题所在。 #### 五、Maven 构建管理 Maven 是一个项目管理和构建工具,通过使用 Maven 可以方便地管理项目的依赖关系、构建...

    googletest3.zip

    通过Google Test,开发者可以确保代码的正确性,并在修改或添加新功能时快速定位问题。 在Unity环境中集成Google Test,通常是为了对C#脚本进行单元测试。这需要借助一些工具,例如Unity Test Tools或者Unity的...

    基于java的ui自动化测试框架

    2. **截图**:在测试过程中,截取屏幕快照有助于记录和分析失败的测试情况,帮助开发者快速定位问题。可以使用Java的Awt或Swing库来实现截图功能,或者借助第三方库如HtmlUnit。 3. **断言**:断言是测试的核心部分...

    JUnit入门,非常实用!

    - 快速反馈:测试结果立即可见,有助于快速定位问题。 - 层次结构的测试套件:方便组织和管理大量测试。 - 易于编写和理解:JUnit测试用例是Java代码,对开发人员友好。 - 广泛支持:JUnit可以与IDE集成,测试EJBs、...

    各大软件公司的编程类笔试试题

    同时,掌握调试技巧,学会阅读和理解错误信息,这将有助于你在面试中迅速定位并解决问题。最后,保持对新技术的热情和好奇心,不断学习和适应新的编程范式和框架,将使你在IT行业中保持竞争力。

    电子地图管理系统

    C语言提供了丰富的错误处理和调试工具,如assert、errno和调试器(如GDB)。 8. 性能优化:由于电子地图系统可能需要处理大量数据,因此性能优化至关重要。这可能涉及到内存管理、算法优化、缓存策略等。 9. 网络...

    学生成绩管理系统

    6. 算法:在处理成绩数据时,可能会涉及到排序算法(如冒泡排序、快速排序)来按成绩或学号排列学生列表,或查找算法(如二分查找)来高效地定位特定学生。 7. 版本控制:在团队开发中,版本控制系统如Git可以帮助...

    distracted

    2. **版本控制**:利用Git等版本控制系统可以帮助开发者追踪代码更改,当出现错误时,可以快速回溯到正确版本,避免在多个分支间跳转时的混乱。 3. **IDE支持**:使用Visual Studio等强大的集成开发环境(IDE)可以...

    C++ 运动会评分系统

    8. **错误检查和调试**:编写代码过程中,需要使用断言(assert)和其他调试工具来检查程序的正确性。同时,良好的日志记录也能帮助定位和解决问题。 9. **测试**:在开发完成后,通过单元测试和集成测试来验证各个...

    HttpRunnerManager-master.zip

    5. **详尽的测试报告**:自动生成测试报告,包括测试结果、响应时间、断言信息等,便于问题定位和性能优化。 三、工作原理 HttpRunnerManager的工作流程主要包括以下几个步骤: 1. **测试用例定义**:使用YAML或...

Global site tag (gtag.js) - Google Analytics