一般测试框架类,如JUnit,TestNG都可以通过设置指定具有某些名称的方法为测试方法,如以test开头的方法为测试方法,这样做的缺点包括:
1.如果方法名称拼写错误,不会有任何提示。如误拼为tsetHello(),测试时此方法不会被执行,但是也不会有任何错误提示
2.可能误执行其他方法,如testSafety()可能是业务方法,但因为符合测试方法的命名模式(以test开头的方法),所以在测试时会被调用
3.不能传递输入参数值给测试方法
使用Annotation可以避免以上问题,如以下使用方式:
//使用@Test标记测试方法 @Test public void sayHello(){} //通过设置@Test的dataProvider指定测试数据提供者 @Test(dataProvider="dataProvider1") public void sayOK(String key,String value){}
以下简单介绍Annotation的使用。Annotation使用@interface声明,在某些情况下Annotation可视为接口(代替接口的功能),以下为自定义Annotation类:
@Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyAnnotation { String value() default "OK"; }
@Documented指定在生成javadoc时,需要同时生成Annotation的帮助文档说明。如果Annotation与业务相关,一般需要生成说明文档
@Retention指定Annotation信息的保持策略,目前包含三种策略:SOURCE/CLASS/RUNTIME,分别对应把Annotation信息保持在源码里/编译后的class文件里/运行时加载到JVM里
@Target指定Annotation的应用目标,如上例设置为ElementType.METHOD,那么MyAnnotation仅能用于方法(method)上
Annotation的方法,如上例的value(),用于指定Annotation的参数值。方法的返回值仅能使用基本数据类型,String,Enum,Class,Annotation类型(包括对应的数组)。如果Annotation仅有一个参数,那么
建议方法名称为“value”。建议使用default指定方法的默认返回值
使用反射可获取目标所使用的Annotation,如下:
@Test @MyAnnotation("OK") public void testAnnotation() throws Exception{ Method method=AnnoTest.class.getDeclaredMethod("testAnnotation"); MyAnnotation myAnnotation=method.getAnnotation(MyAnnotation.class); Assert.assertEquals(myAnnotation.value(), "OK"); }
相关推荐
spring 使用annotation替代xml配置实例
Java-Annotation使用大全 Java-Annotation使用大全 Java-Annotation使用大全
struts2 使用Annotation配置实现的小例子,转载供大家学习使用,里面包括了所需的jar包
spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记
赠送jar包:jakarta.annotation-api-1.3.5.jar; 赠送原API文档:jakarta.annotation-api-1.3.5-javadoc.jar; 赠送源代码:jakarta.annotation-api-1.3.5-sources.jar; 赠送Maven依赖信息文件:jakarta.annotation...
个人认为由Sun官方支持的EJB规范会越来越流行,此时如果使用基于Annotation的SSH框架很容易转移到Struts+EJB+Spring的项目中,而且使用Annotation,很容易实现0配置,像在这个实例中就一个配置,这样避免了配置文件...
赠送jar包:jakarta.annotation-api-1.3.5.jar; 赠送原API文档:jakarta.annotation-api-1.3.5-javadoc.jar; 赠送源代码:jakarta.annotation-api-1.3.5-sources.jar; 赠送Maven依赖信息文件:jakarta.annotation...
NULL 博文链接:https://whp0731.iteye.com/blog/356167
struts2 annotation 注解的详细介绍及使用方法
1.Annotation注解的介绍和使用
赠送jar包:javax.annotation-api-1.2.jar; 赠送原API文档:javax.annotation-api-1.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.2-sources.jar; 赠送Maven依赖信息文件:javax.annotation-api-1.2.pom;...
学习JPA——Hibernate_Annotation使用实例学习JPA——Hibernate_Annotation使用实例学习JPA——Hibernate_Annotation使用实例
赠送jar包:javax.annotation-api-1.3.2.jar; 赠送原API文档:javax.annotation-api-1.3.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.3.2-sources.jar; 赠送Maven依赖信息文件:javax.annotation-api-...
ArcGIS Annotation使用帮助 英文
使用Annotation和反射实现Bean转SQL语句Demo
配置整合DWR3.0和Spring2.5使用annotation注解
从某些方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被存储在annotation的“name=value”结构对中。annotation类型是一种接口,能够通过...
@androidx.annotation.NonNull 缺失的兼容、androidx.annotation兼容包
Spring Annotation
javax.annotation-3.0.jar javax.annotation-3.0.jar javax.annotation-3.0.jar