JUnit中如何测试异常

Kande ·
更新时间:2024-11-13
· 826 次阅读

  很多时候,我们要写一些单元测试来测试我们程序是否能正确触发异常。   比如下面的例子中,我们写了一个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();

    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) {}

}



异常 junit 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章