• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    單元測試中JUnit中如何測試異常

    發布: 2009-3-30 12:31 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 158次 | 進入軟件測試論壇討論

    領測軟件測試網

    單元測試JUnit中如何測試異常?很多時候,我們要寫一些單元測試來測試我們程序是否能正確觸發異常。
      比如下面的例子中,我們就寫了一個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) {}

    }

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: junit Junit JUnit JUNIT 單元


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>