激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 如何使用Java注解和反射實現Junit4調用

如何使用Java注解和反射實現Junit4調用

2023-05-08 01:07未知服務器之家 Java教程

這篇文章主要介紹“如何使用Java注解和反射實現Junit4調用”,在日常操作中,相信很多人在如何使用Java注解和反射實現Junit4調用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用J

這篇文章主要介紹“如何使用Java注解和反射實現Junit4調用”,在日常操作中,相信很多人在如何使用Java注解和反射實現Junit4調用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用Java注解和反射實現Junit4調用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

實例需求

需求:模擬Junit4中的用例結構,自定義一個標簽作為測試用例的標識。

在Junit4中注解@Test表示測試用例,每一個測試用例的本質就是測試類中的一個方法,即:

@Test?public?void?test()?{?fail("Not?yet?implemented");?}

具體要求:

測試類是默認構造方法

通過標簽MyTag作為方法是否為用例的標識

作為用例的方法必須是無參的

寫一個方法runCase(String pkgName),使其能夠完成對指定類中測試用例的調用工作

注解設計

首先需要定義一個注解MyTag,代碼如下:

import?java.lang.annotation.Retention;?import?java.lang.annotation.Target;?import?java.lang.annotation.ElementType;?import?java.lang.annotation.RetentionPolicy;?@Retention(RetentionPolicy.RUNTIME)?@Target(ElementType.METHOD)?public?@interface?MyTag{?String?name();?}
測試用例設計

模擬junit4框架,寫一個測試類,其中login、info、logout是無參方法,而test是有參方法

public?class?TestTag{?@MyTag(name="case1")?public?void?login(){?System.out.println("login");?}?@MyTag(name="case2")?public?void?info(){?System.out.println("info");??}?@MyTag(name="case3")?public?void?logout(){?System.out.println("logout");?}?@MyTag(name="case4")?public?void?test(String?p){?System.out.println("logout");??}?}
運行類的設計思路

因為測試類是默認構造方法,所以使用如下API,完成類實例化

Class<?>?clazz?=?Class.forName(pkgName)?Object?obj?=?clazz.newInstance();

因為測試類中有很多方法,我們需要獲取所有的方法并按照規則進行過濾,代碼如下:

Method[]?methods?=?clazz.getMethods();?for?(Method?method?:?methods)?{?//過濾規則??}

判斷方法的標簽是否為MyTag,代碼如下:

If(method.getAnnotation(MyTag.class)?!=?null)

判斷方法是否沒有參數,代碼如下:

If(method.getParameterCount()==0)

運行方法,代碼如下:

method.invoke(obj)
完整代碼
public?static?void?runCase(String?pkgName)?throws?IllegalAccessException,IllegalArgumentException,?InvocationTargetException,?InstantiationException,ClassNotFoundException?{??Class<?>?clazz?=?Class.forName(pkgName);??Object?obj?=?clazz.newInstance();??Method[]?methods?=?clazz.getMethods();?for?(Method?method?:?methods)?{????????if(method.getAnnotation(MyTag.class)?!=?null&&?method.getParameterCount()==0)?{?????????????????????????????????method.invoke(obj);?//調用方法????????????????System.out.println("測試用例名稱是:"+method.getName());?}?}?}

運行代碼,輸出如下:

logout

測試用例名稱是:logout

login

測試用例名稱是:login

info

測試用例名稱是:info

到此,關于“如何使用Java注解和反射實現Junit4調用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注***網站,小編會繼續努力為大家帶來更多實用的文章!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美精品一区二区免费 | 亚洲第一视频 | 欧美囗交| 成年性羞羞视频免费观看无限 | av电影在线观看网站 | h视频在线免费看 | 国产欧美日韩免费 | 国产美女视频一区二区三区 | 在线观看国产网站 | 欧美成年性h版影视中文字幕 | 播色网| 国产免费视频在线 | 懂色粉嫩av久婷啪 | 在线成人www免费观看视频 | 视频www | 国产亚洲综合精品 | 国产日韩线路一线路二 | 久久综合给合久久狠狠狠97色69 | a黄色网| 婷婷亚洲一区二区三区 | 欧美一级黄色影院 | 午夜色视频在线观看 | 国产污网站在线观看 | 羞羞视频免费视频欧美 | 看免费的毛片 | 国产亚洲精品美女久久久 | 91精品国产一区二区三区四区在线 | 最新中文字幕在线视频 | 在线视频观看一区二区 | 成人超碰97 | 一级黄色在线免费观看 | 中文字幕伦乱 | 久久国产经典 | 7777视频| 国产三级国产精品国产普男人 | 久久久激情网 | 中文日韩在线视频 | 精品久久久久久久久亚洲 | 久久中文字幕在线观看 | 国产一级毛片网站 | 欧美在线观看视频网站 |