| 网站首页 | 测试咨讯 | 新手入门 | 专注性能 | 测试技术 | 测试管理 | 测试工具 | 开发社区 | 工具下载 | 资料下载 | 测试论坛 | 

[CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523

新手入门
 入门指南
 经验之谈
测试咨讯
 行业新闻
 网站动态
 人才就业
 CNTester基金
 标准规范
专注性能
 性能测试知识
 性能测试工具
 程序设计性能
 数据库性能
 Web应用服务器性能
 操作系统性能
 服务器与网络性能
测试技术
 用例设计
 性能测试
 自动化测试
 Web测试
 面向对象测试
 综合技术
 阶段性测试
 行业类测试
测试管理
 项目管理
 项目案例
 质量管理
 软件过程
测试工具
 Mercury系列
 Rational系列
 测试管理工具
 性能测试工具
 功能测试工具
 单元测试工具
 其它测试工具
开发社区
 Java技术
 DotNet技术
 C技术
 数据库技术
 操作系统
 服务器与中间件
工具下载
 测试工具
 开发工具
 企业工程
 网络通信
 媒体桌面
 游戏娱乐
 其他工具
资料下载
 测试资料
 程序设计
 数据库
 操作系统
 应用服务器
 电子期刊
 其他资料
 
 
您现在的位置: 中国测试员网站 >> 测试工具 >> 单元测试工具 >> XUnit >> 文章正文
  [推荐]JUnit中如何测试异常          【字体:
JUnit中如何测试异常
作者:佚名    文章来源:51testing.com    点击数:    更新时间:2007-4-30    
多时候,我们要写一些单元测试来测试我们程序是否能正确触发异常。
  比如下面的例子中,我们就写了一个test case来测试一个Email验证类EmailAddrValidator,这个类有一个doValidate(email)方法可以验证email是否合法,如果不合法则会抛出ValidationException异常。因此我们写了两个方法来进行单元测试,前一个方法testDoValidate用来测试正常值,后一个方法testDoValidateException用来测试对错误的email格式是否能正确触发异常。
  这个例子的关键是方法testDoValidateException(String email) 。

import junit.framework.TestCase;

public class TestEmailAddrValidator extends TestCase {
    EmailAddrValidator validator = new EmailAddrValidator();

    public void testDoValidate() throws ValidationException {
        validator.doValidate("glchengang@163.com", null);
        validator.doValidate("glchen.gang@163.com", null);
        validator.doValidate("glchen_gang@163.com", null);
        validator.doValidate("glchen.gang@163_tom.com", null);
    }

    public void testDoValidateException() {
        testDoValidateException("@b.c");
        testDoValidateException("a@.c");
        testDoValidateException("a@b.");
        testDoValidateException("@.c");
        testDoValidateException("@...");
        testDoValidateException(" ");
        testDoValidateException(null);
    }

    private void testDoValidateException(String email) {
        try {
            validator.doValidate(email, null);
            fail("末抛出异常");
        } catch (ValidationException e) {
            assertTrue(true);
        }
    }
}



-----------------------------------------
注:在这里Locale 参数并没有用到。
import java.util.Locale;

import com.hygensoft.common.configure.ConfigureObject;

public class EmailAddrValidator{

    protected static final String ERROR_CODE_INVALID_EMAIL_ADDR = "INVALID_EMAIL_ADDR";
    protected static final String ERROR_CODE_INVALID_INPUT = "INVALID_INPUT_OBJECT";

    public Object doValidate(Object input, Locale locale) throws ValidationException {
        if (!(input instanceof String)) {
            throw new ValidationException(ERROR_CODE_INVALID_INPUT, input);
        }
        String inputStr = (String) input;
        int idx = inputStr.indexOf('@');
        if (idx == -1 || idx == 0) {
            throw new ValidationException(ERROR_CODE_INVALID_INPUT, input);
        }
        int idx2 = inputStr.indexOf('.', idx);
        if (idx2 == -1 || idx2 == idx + 1) {
            throw new ValidationException(ERROR_CODE_INVALID_INPUT, input);
        }
        if (inputStr.endsWith(".")) {
            throw new ValidationException(ERROR_CODE_INVALID_INPUT, input);
        }
        return input;
    }

    /* (non-Javadoc)
     * @see com.hygensoft.common.configure.Configurable#initialize(com.hygensoft.common.configure.ConfigureObject)
     */
    public void initialize(ConfigureObject conf) {}

}
文章录入:admin    责任编辑:admin 
  • 上一篇文章: 没有了

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    最新热点 最新推荐 相关文章
    · 常用软件测试工具简介!
    · Test Director 8.0安装配置!
    · Parasoft Jtest 7.5.59 使用手册
    · Test Director 8.0项目数据库维护和移植!
    · 使用CQ TestManager 运行并分析软件测试
    · TestDirector 8.2 SP2的下载与安装
    · Mercury WinRunner 软件试用 下载
    · Winrunner TSL命令简介
    · Mercury TestDirector 软件试用 下载
    · JTest7.59定义——JAVA 编码标准规范
    · 初识IBM Rational RobotJ
    · 使用 Rational Robot 实现自动化测试
    · 使用CQ TestManager 运行并分析软件测试
    · 常用软件测试工具简介!
    · 使用Functional Tester 6.1 进行功能测试
    · 使用Functional Tester 6.1 进行功能测试
    · 使用Functional Tester 6.1 进行功能测试
    · 使用Functional Tester 6.1 进行功能测试
    · 使用 EclEmma 进行覆盖测试
    · JTest7.59定义——JAVA 编码标准规范
    没有相关文章
     
     
     
    ======> [CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | 

    Copyright@2007 by CNTester.com 中国测试员网站 桂ICP备07005590

    本站为开源免费网站,非商业赢利性组织。本站文章部分从网络搜索获取,如果您认为某些侵犯了您的权益,麻烦您联系本站,我们会尽快删除相关内容,同时也希望您的谅解,我们的初衷是为了让更多人去学习这方面的知识,让行业有更好的发展。

    联系电话: 15021358905