Java之Junit、反射、注解

14Junit、反射、注解

14.1.1 Junit的概述
      一般IDE都内置了junit,若需要自行下载jar包,可以访问官网,官网地址如下:http://www.junit.org 

  1. 特点
       - 方法命名规则:以test开头,使用驼峰命名法。
       - 方法声明上:必须使用注解:@Test,必须使用public修饰符,没有返回值,方法没有参数。
      
  2. 运行测试方法
       - 选中方法名:右键 –> Run 测试方法名,则运行选中的测试方法
         比如测试方法名为testSum,则右键 –> Run testSum
       - 选中类名:右键 –> Run 类名,则运行该类的所有测试方法
         比如类名为TestCalculte,则右键 –> Run TestCalculte
       - 选中模块名或项目名:右键 –> Run ‘All Tests’,则运行整个模块中所有类的所有测试方法。
  3. 查看测试结果
       - 绿色:表示测试通过,
       - 红色:表示失败或出现错误,
      

14.1.2 常用注解

  • @Before:在每个测试方法之前都会运行一次
  • @After:在每个测试方法运行以后运行的方法
  • @BeforeClass:在所有的测试方法运行之前,只运行一次,而且必须用在静态方法上面。
  • @AfterClass:所有的测试方法运行以后,只运行一次,必须用在静态方法上面。

  • 业务类

       /**
        业务类
        */
       public class Calculate {
           /*
              求a和b之和
            */
           public int sum(int a,int b){
               return a + b;
          }
     
           /**
            求a和b之差
            */
           public int sub(int a,int b){
               return a - b;
          }
      }

  • 测试类

       import org.junit.*;
     
       public class Test2 {
     
           @BeforeClass
           public static void testBeforeClass() {
               System.out.println(“类加载时, 只运行一次.”);
          }
     
           @Before
           public void testBefore() {
               System.out.println(“测试方法运行前被执行 …”);
          }
     
           @Test
           public void testSum() {
               Calculator calculator = new Calculator();
               int sum = calculator.sum(10, 20);
               System.out.println(“sum = ” + sum);
          }
     
           @Test
           public void testSub() {
               Calculator calculator = new Calculator();
               int sub = calculator.sub(100, 20);
               System.out.println(“sub = ” + sub);
          }
     
           @After
           public void testAfter() {
               System.out.println(“每个测试方法被执行后执行 …”);
          }
     
           @AfterClass
           public static void testAfterClass() {
               System.out.println(“类结束前, 只执行一次.”);
          }
      }
     
       输出结果 :
       类加载时, 只运行一次.
       测试方法运行前被执行 …
       sub = 80
       每个测试方法被执行后执行 …
       测试方法运行前被执行 …
       sum = 30
       每个测试方法被执行后执行 …
       类结束前, 只执行一次.

14.2 反射

14.2.1 反射的基本概念

        2.1 什么是反射

                反射是一种机制,利用该机制可以在程序运行过程中对类进行解剖并操作类中的方法,属性,构造方法等成员。

        2.2 使用反射机制解剖类的前提

    必须先要获取到该类的字节码文件对象,即Class类型对象。关于Class描述字节码文件如下图所示:

tips:

1)Java中使用Class类表示某个class文件.

2)任何一个class文件都是Class这个类的一个实例对象.

        2.3 获取Class对象的三种方式

  • 创建测试类:Student

       public class Student {
           // 属性
         
           // 行为
      }



    2.2.1 方式1:通过类名.class获取

           @Test
           public void test1() {
               // 方式一 : 通过类名获取 class 对象
               // 格式 : 类名.class 属性
               // 常用场景 : 反射获取方法时, 确定方法的形参列表类型
               Class cls = Student.class;
               System.out.println(“cls = ” + cls);
          }
     
       输出结果 :
       cls = class cn.itcast.test2.Student



    2.2.2  方式2:通过Object类的成员方法getClass()方法获取

           @Test
           public void test2() {
     
               // 1. 创建一个 Student 类型的对象
               Student stu = new Student();
     
               // 2. 调用方法, 并传入 stu 对象
               showInfo(stu);
          }
     
           public void showInfo(Object obj) {
     
               // 方式二 : 使用对象名调用 getClass() 方法.
               // 格式 : 对象名.getClass() 方法.
               // 使用场景 : 在方法内部, 确定传入形参的真实类型.
     
               Class
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值