junit测试:JUnit中如何测试异常
来源: 发布时间:星期四, 2009年1月8日 浏览:13次 评论:0
比如下面 例子中 我们就写了 个test 来测试 个Email验证类EmailAddrValidator 这个类有 个doValidate(email)思路方法可以验证email是否合法 如果不合法则会抛出ValidationException异常 因此我们写了两个思路方法来进行单元测试 前 个思路方法testDoValidate用来测试正常值 后 个思路方法testDoValidateException用来测试对 email格式是否能正确触发异常 这个例子 关键是思路方法testDoValidateException(String email) import junit.framework.TestCase; public TestEmailAddrValidator extends TestCase { EmailAddrValidator validator = EmailAddrValidator; public void testDoValidate throws ValidationException { validator.doValidate("[email protected]", null); validator.doValidate("[email protected]", null); validator.doValidate("[email protected]", null); validator.doValidate("glchen.gang@163_tom.com", null); } public void testDoValidateException { testDoValidateException("@b.c"); testDoValidateException("[email protected]"); 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 EmailAddrValidator{ protected final String ERROR_CODE_INVALID_EMAIL_ADDR = "INVALID_EMAIL_ADDR"; protected final String ERROR_CODE_INVALID_INPUT = "INVALID_INPUT_OBJECT"; public Object doValidate(Object input, Locale locale) throws ValidationException { (!(input instanceof String)) { throw ValidationException(ERROR_CODE_INVALID_INPUT, input); } String inputStr = (String) input; idx = inputStr.indexOf('@'); (idx -1 || idx 0) { throw ValidationException(ERROR_CODE_INVALID_INPUT, input); } idx2 = inputStr.indexOf('.', idx); (idx2 -1 || idx2 idx + 1) { throw ValidationException(ERROR_CODE_INVALID_INPUT, input); } (inputStr.endsWith(".")) { throw ValidationException(ERROR_CODE_INVALID_INPUT, input); } input; } /* (non-Javadoc) * @see com.hygensoft.common.configure.Configurable#initialize(com.hygensoft.common.configure.ConfigureObject) */ public void initialize(ConfigureObject conf) {} }
相关文章
读者评论
发表评论
|
|