专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »软件测试 » 验证码代码:对代码的异常进行验证 »正文

验证码代码:对代码的异常进行验证

来源: 发布时间:星期六, 2008年12月13日 浏览:65次 评论:0
  是不是在测试过程中抛出异常就是bug呢恰恰相反在该抛出异常地方定要抛异常如果没有抛反而是bug

  在测试的前我们需要熟读设计文档弄清楚在什么情况下会抛出什么异常举个例子比如有个思路方法boolInsertUser如果插入成功返回true如果由于所插入用户信息有问题(比如缺少必填name)是返回false呢还是直接抛出异常对于这两种情况测试代码是完全区别所以我们必须先搞清楚是如何设计

  在中经常会用try、catch方式增强健壮性但是在测试里面try确要慎用绝对不能在每个地方都使用try这是为什么呢?


  还是上面那个例子当插入用户信息有错时如果会抛出异常那么我们测试才能使用try如果返回是false那我们就不能使用try如果这时使用了try而insertUser出了问题那测试还是会显示通过bug就被漏了

  中定义异常通常都是从Exception这个基类继承如果我们在测试代码中使用try却不能直接catchException而是要指定抛出异常类型下面是段正确测试代码


try{
us.insertUserExtraInfo(user);
fail(\"参数没有抛出异常\");
}catch(RemoteAccessExceptione){
//验证异常信息是否正确代码
}


  这里RemoteAccessException就是定义类型我们catch时候定要指定这个类型如果我们catchException那么当抛出其他类型异常时我们就把这个bug漏了

  当成功catch到异常以后我们还需要对异常具体信息进行验证比如插入用户name没有填异常信息应该是“用户信息如果插入个已经存在用户那么信息就是“用户重复”等等我们在测试中catch住异常以后就需要对这些message进行检查确保和我们期望如果不检查当插入个已经存在用户时异常信息是“未指定那bug就漏了

  最后说下异常信息验证通常情况下我们比对两个String是否致就行了但是有时候信息中包含了些变化信息如果每次变化时候我们都要改代码那就太麻烦了建议使用正则表达式只验证message中关键部分,www.

  举个例子个异常信息是“[192.168.1.1:1234]用户已经存在”这里IP信息有可能变化那我们就定义个正则表达式
  \\\\[[\\\\d.]+:[\\\\d]+\\\\]用户已经存在$

  然后使用下面代码进行验证

  Pattern.compile(正则表达式).matcher(实际抛出异常信息).find;


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: