2020-8-14 JavaWebDay_01

Junit单元测试:

测试分类:

1.黑盒测试:不需要写代码,给输入值,看程序是否输出期望值;

2.白盒测试:需要写代码,关注程序执行流程;

Junit使用:白盒测试;

步骤:

1.定义一个测试类(测试用例);

	建议:测试类名:被测试的类名+Test;

		包名:xxx.xxx.xx.test;

2.定义测试方法:可以独立运行;

	建议:方法名:test+测试的方法名
			
		 返回值:void
		 
		 参数列表:空参;

3.给方法加@Test;

4.导入junit依赖环境;

判定结果:

红色:失败;

绿色:成功;

断言:

Assert.assertEquals(期望结果,运行结果);

一般我们使用断言操作来处理结果;

方法和注解:

init():初始化方法,用于资源申请,所偶测试方法在执行之前都要执行该方法;

@Before:修饰的方法会在测试方法之前自动执行;

close():释放资源,在所有测试方法执行完后,都要执行该方法;

@After:修饰的方法会在测试方法执行后自动被执行;

反射(又学一遍):

框架设计的灵魂;

框架:

半成品软件,可以在框架的基础上进行软件开发,简化编码;

反射概述:

将类的各个部分封装为其他对象,这就是反射机制;

java代码在计算机中经历的三个阶段:

Source源代码阶段;

Class类对象阶段;

Runtime运行时阶段;

反射的好处:

1.可以在程序运行过程中,操作Class类对象的Field,Constructor,Method对象;

2.可以解耦,提高程序的可扩展性;

获取Class类对象的方式:

1.Class.forName("全类名"):将字节码文件加载入内存,返回Class对象;

2.类名.class:通过类名的class属性来获取l

3.对象.getClass():getClass方法在Object类中定义着;

结论:同一个字节码文件在一次程序运行过程中只会被加载一次,无论通过哪一个方式获取的Class对象都是同一个;

方式1多用于配置文件,将类定义在配置文件中,读取文件,加载类;

方式2:多用于参数的传递;

方式3:多用于对象的获取字节码的形式;

获取Class对象的构造方法,成员变量,成员方法:

获取成员变量:

Field[] getDeclaredFields();

Field getDeclaredField(String name);

Field[] getFields();

Field getField(String name);

获取成员方法:

Method[] getMethods(String name,Class<?>…paramter Types)(包括父类);

Method[] getDeclaredMrthods(String name,Class<?>…paramter Types)(本身的);

Method getMethod();

Method getMethods();

获取构造方法

Constuctor<?>[] getConstructors(Class<?>…paramter Types) 返回所有公共构造方法;

Constuctor<?>[] getDeclaredConstructors(Class<?>…paramter Types):返回所有构造方法;

Constuctor getConstructor(参数字节码文件):返回单个公共构造方法:

Constuctor getDeclaredConstructor(参数字节码文件):返回单个构造方法;

获取类名:

String getName;

Field,Constructor,Method用法:

Field:
成员变量;

操作:1.设置值, set(Object obj,Object value);

	 2.获取值 get(Object obj);
	 
	 obj为对象;
Constructor:
构造方法;

创建对象; T newInstance(Object..initargs);

Class类的newInstance可以直接创建无参构造的对象(我用了一下貌似过时了);
Method:
执行方法:

invoke(Object obj,Object...initargs);

获取方法名:

String getName;

案例:

需求:写一个类,可以帮我们创建任意类的对象,并且执行任意方法;

实现:
1.配置文件;(ClassName=xxx,Method=xxx)

2..反射;

步骤:

1.将需要创建的对象的全类名和需要住行的方法定义在配置文件中;

2.在程序中加载读取配置文件;

用Class类的方法获取本类ClassLoader,再用ClassLoader的getResourceAsStream生成输入流;

用properties的load方法读取类名和方法名;

3.使用反射技术来加载类文件进内存;

4.创建对象;

5.执行方法;

注解:

概念描述:

1.JDK1.5之后的新特性;

2.说明程序;

3.使用方式:@注解名称;

作用分类:

1.便写文件:通过代码里表示的注解生成文档[javadoc文档];

2.代码分析:通过代码里表示的注解对代码进行分析[使用反射];

3.编译检查:通过代码里表示的注解让编译器能够实现基本的编译检查[Override];

JDK预定义的一些注解:

@Override:检测被该注解标识的方法是否继承自父类(接口);

@Deprecated:被该注解表示的内容已过时;

@SuppressWarnings:压制警告 SuppressWarnings("all")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值