logo
 
 
|
|
|
|
|
|
|
|
 
 
您的位置:首页 - 测试工具
Junit中如何测试异常
[2009-10-09]

很多时候,我们要写一些单元测试来测试我们程序是否能正确触发异常。

  比如下面的例子中,我们就写了一个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) {}

}

上一篇:开源版本控制工具Subversion 1.5
下一篇:Winrunner TSL命令简介
   
软件测试工具分类详细说明 软件测试工具分类详细说明
JUnit中如何测试异常 JUnit中如何测试异常
软件功能测试工具SilkTest 软件功能测试工具SilkTest
开源测试工具的完整解决方案 开源测试工具的完整解决方案
 

在线报名

  • 姓       名:*
  • 高考成绩:*
  • 电       话:*
  • 地       址:*
 
课程咨询
 

 
中博教育客服在线
 
©南京北大青鸟 隐私政策
学费咨询
学历咨询
专业咨询
订座试听
就业咨询
课程咨询
测试认证
软件认证