JavaWeb:使用Java语言完成服务器端程序开发
一、Junit单元测试:
1、测试分类:
黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
白盒测试:需要写代码的。关注程序具体的执行流程。
2、Junit测试:白盒测试的一种
2.1)使用步骤:
1. 定义一个测试类(测试用例)
建议:
* 测试类名:被测试的类名+Test 如:CalculatorTest
* 包名:xxx.xxx.xx.test 如:cn.itcast.test
2. 定义测试方法:该方法可以独立运行
建议:
* 方法名:test+被测试的方法名 如:testAdd()
* 返回值:void
* 参数列表:空参
3. 给方法加@Test,让方法独立运行
4. 导入junit依赖环境
2.2)判定测试结果:
状态条为红色:代表失败
状态条为绿色:代表成功
一般我们会使用断言操作来处理结果。如:Assert.assertEquals(期望的结果,运算的结果);
2.3)补充:
@Before:修饰的方法会在测试方法执行之前被自动执行(一般用于资源的申请)
@After:修饰的方法会在测试方法执行之后被自动执行(一般用于资源的释放)
二、反射:框架设计的灵魂
1、框架:半成品软件。可以在框架的基础上进行软件开发,简化编码
2、反射:将类的各个组成部分封装为其他对象,这就是反射机制
Class类是对字节码这一类对象的描述。因此,Class类的对象即是某个类的字节码所形成的对象。同时,通过类加载器,某个类的Class类对象将该类的字节码中所包含的各个组成部分封装为了其他对象(如:字段Field对象、构造方法Constructor对象,成员方法Method对象)。将类的各个组成部分封装为其他对象的机制就是反射机制。
2.1)好处:
1. 可以在程序运行过程中,操作这些对象。
2. 可以解耦,提高程序的可扩展性。
3、获取Class对象的方式:
3.1)Class.forName("全类名"):将字节码文件加载进内存,返回Class类对象
* 多用于配置文件,将类名定义在配置文件中。读取文件,加载类
3.2)类名.class:通过类名的属性class获取
* 多用于参数的传递
3.3)对象.getClass():getClass()方法在Object类中定义着。
* 多用于对象的获取字节码的方式
结论:同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。
4、Class对象功能:
4.1)获取功能:
1. 获取成员变量们
* Field[] getFields() :获取所有public修饰的成员变量
* Field getField(String name) 获取指定名称<