Java高级JUnit、注解

JUnit、注解
    Part 1:JUnit
          1、基础概念:JUnit软件测试技术(工具):在项目中建立专门用户测试的包结构。在Junit中,通过@Test注解,可以运行一个方       法。
          2、Junit注解说明
             使用了@Test注解应该满足以下条件:
             1) 必须是无参数的非静态方法。
             2) 添加@Test注解的类,必须拥有一个无参数的公开构造
         3、JUnit测试示例演示
             1)运行完成后,可以在Junit的窗口上看到运行所用的时间和结果信息。
             2)被测试程序的运行结果出现在控制台(Console)上。
          4、JUnit中的其它注解
              @BeforeClass----每个测试类完成之前运行一次
              @AfterClass-------每个测试方法完成之后运行一次
              @Before----------- 每个测试方法完成之前运行一次
              @After--------------每个测试方法完成之后运行一次。非静态。
 
      Part 2:注解( Annotation )
            1、首先来了解一个概念--------元数据
                  1) 所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段                下的数据的含义。
                  2)元数据可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。许多元数据工具,如XDoclet,将这些功              能添加到核心Java语言中,暂时成为Java编程功能的一部分。
                  3) 一般来说,元数据的好处分为三类:文档编制、编译器检查和代码分析。代码级文档最常被引用。元数据提供了一种                有用的方法来指明方法是否取决于其他方法,它们是否完整,特定类是否必须引用其他类,等等。
            2、注解是什么?
                   1)Java中的注解就是Java源代码的元数据,也就是说注解是用来描述Java源代码的。  
                   2)基本语法就是:@后面跟注解的名称。
            3、Java中预定义注解-------Java.lang包当中的三个预定注解
                   1)Override:标识某一个方法是否正确覆盖了它的父类的方法。
                   2)Deprecated:表示已经不建议使用这个类成员了。它是一个标记注解。
                   3)SuppressWarnings:用来抑制警告信息。
            4、自定义注解: 
                   1)最简单的自定义注解:                                     2)使用这个注解:
                        public @interface MyAnno{                              @MyAnno
                         }                                                                         public class UserModel{}     
                   3)为注解添加成员 
                        //定义
                         public @interface MyAnno {
                              public String schoolName();//这里的schoolName 在使用这个注解时必须给值,如果不给会出错,不过可以加一                                 }                                           //段代码:default "湖南城市学院";这样的话,如果用户不给值默认为default后面的                                                                               //字符串
                         //使用
                         @MyAnno(schoolName="湖南城市学院")  
                          public class UserModel{
                          } 
            5、对注解的注解
                   1)指定目标 Target:在了解如何使用Target 之前,需要认识另一个类,该类被称为ElementType ,它实际上是一个枚                     举。这个枚举定义了注释类型可应用的不同程序元素。
                @Target({ ElementType.TYPE, ElementType.METHOD}) -----这句表示注解只能放在类上和方法上
                   2)设置保持性 Retention:RetentionPolicy 枚举类中定义了3种注解保持性,分别决定了Java 编译器以何种方式处理注                   解。@Retention(RetentionPolicy.SOURCE)-----编译器要丢弃的注释
                       @Retention(RetentionPolicy.Class)-----编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释。
                       @Retention(RetentionPolicy.RUNTIME)-----编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以                 反射性地读取。
                   3)添加公共文档 Documented:在默认的情况下在使用javadoc自动生成文档时,注解将被忽略掉。如果想在文档中也包                含注解,必须使用Documented为文档注解。
                   4)设置继承 Inherited:在默认的情况下,父类的注解并不会被子类继承。如果要继承,就必须加上Inherited注解。
            6、如何读取注解
                    要读取注解的内容,就需要使用反射的技术。注意:要想使用反射得到注释信息,须用                                                                @Retention(RetentionPolicy.RUNTIME)进行注解。
  
import java.lang.reflect.*;
public class TestMyAnno {
  public static void main(String[] args)throws Exception {
    Class c = Class.forName(“anno.UserModel");
    boolean flag = c.isAnnotationPresent(MyAnno.class);
    System.out.println(flag);
    if(flag){
      MyAnno ma = (MyAnno)c.getAnnotation(MyAnno.class);
      System.out.println("学校名称:=="+ma.schoolName());
      //获取到了这些数据过后,下面就可以开始你的处理了
    }
  }
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值