怎么使用Java注解和反射实现Junit4调用
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍了怎么使用Java注解和反射实现Junit4调用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Java注解和反射实现Junit4调用文章都会有所收
千家信息网最后更新 2025年02月02日怎么使用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调用"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"怎么使用Java注解和反射实现Junit4调用"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
方法
测试
注解
代码
反射
名称
标签
知识
设计
运行
内容
实例
标识
篇文章
规则
需求
价值
参数
就是
思路
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库控制面板命令删除
襄阳金惠互联网科技有限公司
银行数据库变迁
海淀区软件开发反馈
山西麻将软件开发质量放心可靠
亚太网络安全会议
路由器软件开发实验
卢森堡的网络安全战略
桌面云是云服务器吗
数据库三线表
香港服务器30
本地数据库连接失败
软件开发 收获
服务器版和一体机版
数据库数据恢复哪种快
vpn名称和服务器地址
tomcat怎么获取数据库数据
网络安全8个不信
马云创业是互联网软件开发吗
汉中app与软件开发多少钱
cs连接上一个服务器指令
网络安全开源情报系统
服务器哪设置
银行数据库变迁
网络安全生意概念股
注册策略服务器应该填啥
惠州安信网络技术公司
在线下单数据库设计
佛法视频软件开发
网络安全技术的发展具有