day2注解与测试课案.docx

上传人:b****1 文档编号:401142 上传时间:2022-10-09 格式:DOCX 页数:19 大小:1.09MB
下载 相关 举报
day2注解与测试课案.docx_第1页
第1页 / 共19页
day2注解与测试课案.docx_第2页
第2页 / 共19页
day2注解与测试课案.docx_第3页
第3页 / 共19页
day2注解与测试课案.docx_第4页
第4页 / 共19页
day2注解与测试课案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

day2注解与测试课案.docx

《day2注解与测试课案.docx》由会员分享,可在线阅读,更多相关《day2注解与测试课案.docx(19页珍藏版)》请在冰豆网上搜索。

day2注解与测试课案.docx

day2注解与测试课案

注解与测试

 

1课程介绍

Ø1.认识与理解注解

Ø2.JDK四大内置注解

Ø3.JDK的元注解

Ø4.注解的开发与使用

Ø5.软件测试的认识

Ø6.Junit3&Junit4

 

2认识与理解注解

本章的学习内容:

●注解的定义

●注解的作用分类

●怎么使用注解

●注解三要素

2.1注解的定义

注解(Annotation),也叫元数据,标签,注释。

一种代码级别的说明。

它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。

它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

之前写的Java中的3大注释仅仅是上面说的注释的一种

注释(广义)

①注释(单行多行文档注释)--狭义的注释;

注释是给程序员看的.

②注解注解是给程序看的.

 

2.2我们为什么要学习注解

①在学习与工作中,经常会看别人的代码,别人的代码中就有注解。

特别是框架相关的代码spring

②可以让代码更简洁,逻辑更加清爽

③可以让别人觉得你的技术还算不错,见过一些东西(自定义注解)

 

2.3注解的作用分类

①编写文档:

通过代码里标识的元数据生成文档【生成文档doc文档】

②代码分析:

通过代码里标识的元数据对代码进行分析【使用反射】

③编译检查:

通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】

2.4怎么使用注解(soeasy)

@+注解的名称它可以贴在方法,类,字段....

 

2.5注解的三要素

l①需要有一个注解

l②使用这个注解(这个注解贴在什么地方)

③第三方程序为注解实现功能

3JDK四大内置注解

本章的学习内容:

●认识与使用四大内置注解

●理解四大内置注解的含义与作用

使用Annotation要使用到@符号,@+Annotation名字

3.1java提供的四个基本的Annotation:

@Override限定覆写父类方法

@Deprecated标记已过时

@SuppressWarings抑制编译器警告

@SafeVarargs抑制堆污染警告

3.2具体使用-@Override限定覆写父类方法

特点:

只能贴在方法上面

作用:

在工具中如果错误,会直接提示我们(这个方法必需是父类有的方法,不然会报错)

3.3具体使用-@SuppressWarings抑制编译器警告

特点:

它可以贴在类,方法,字段...使用它的时候还可以加参数

作用:

就是这个警告不出现而已(自欺欺人的说法)

3.4具体使用-@Deprecated标记已过时

一个方法过时代表什么?

有可能这个方法有bug..有更好的方法去代替它..

为什么又要留着它?

向下兼容!

!

3.5具体使用-@SafeVarargs抑制堆污染(了解)

警告-当可变参数与泛型同时出现的时候,可能会产生堆污染

 

思考?

①为什么有的只能贴在方法上,有的标签可以贴在类在,方法,字段上

②为什么有的标签可以加参数,有的标签不能加参数

 

4JDK的元注解

本章的学习内容:

●什么是元注解(matedata)?

●不同元注解的作用是什么?

●元注解的使用方法(自定义注解做详细讲解)

 

4.1什么是元注解?

写在注解上面的注解

4.2常用的元素注解

@Target:

使用范围(就是可以贴哪?

@Retention:

生命长度(贴了后管多久)

@Documented:

文档

@Inherited:

继承

4.2.1@Target使用范围

就是我们这个标签可以贴在哪些地方

ElementType.CONSTRUCTOR只能修饰构造方法

ElementType.METHOD只能修饰方法

ElementType.TYPE只能修饰类,接口,枚举

ElementType.FIELD只能修饰字段(属性),包括枚举常量

ElementType.LOCAL_VARIABLE只能修饰局部变量

ElementType.PACKAGE只能修饰包(极少使用)

ElementType.PARAMETER只能修饰参数

注意:

如何打在包上

报错原因:

打错地方了

packagecn.itsource._01anno;仅仅表示本类在这个包下面而已

上面提示要求注解必须打包的声明文件中

应该是:

 

4.2.2@Retention:

生命存在范围

//JDK中枚举类RetentionPolicy的源代码

publicenumRetentionPolicy{

SOURCE,CLASS,RUNTIME

}

Override定义采用的Retention(value=SOURCE):

只能在源文件出现

Deprecated定义采用的Retention(value=RUNTIME):

可以在执行时出现

SuppressWarning定义采用的Retention(value=SOURCE):

只能在源文件出现

SafeVarargs定义采用的Retention(value=SOURCE):

只能在源文件出现

自己做标签,要运用反射去分析.那么我们自己做的标签必需是RUNTIME

4.2.3@Documented:

文档

4.2.4@Inherited:

继承

我自己定义了一个标签:

MyAnn

@MyAnn

publicclassParent(){}

publicclassChildren()extendsParent{}

如果我在自定义MyAnn这个标签的时候,在上面加上了Inherited,

那么我们通过反射去找Children这个类,就可以找到这个标签

加上后相当于这个标签所修饰的类的所有子类也有这个标签

5注解的开发和使用

1定义一个注解(标签)

2贴标签

3实现功能

本章的学习内容:

●怎么创建一个自定义注解

●在自定义注解上使用元注解

●自定义注解怎么添加属性

●使用反射拿到注解

 

5.1创建一个自定义注解

这种格式就是一个注解,就可以拿去贴贴贴

5.2在自定义注解上使用元注解

5.3在注解里面加上属性

特殊的写法,名字是否是value问题,默认值,可以有的类型,多个属性;

5.4使用反射去拿到注解

5.4.1拿到所有的注解

5.4.2拿到某一个特定的注解

测试:

通过反射获得类方法字段上面的注解

------》需要先获得对应的对象ClassMethodField

6软件测试

本章的学习内容:

●什么是测试

●黑盒测试

●白盒测试(可以看到代码来完成)

●单元测试

测试先行:

一种程序员如果不知道该怎么测试,就不应该写代码

黑盒测试:

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。

在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。

很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

作用:

黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误。

功能不正确或遗漏;

界面错误;

输入和输出错误;

数据库访问错误;

性能错误;

初始化和终止错误等。

白盒测试:

又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。

它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。

白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

----------------------------------------------------------------------------------

灰盒测试

咱们马上要学习的是单元测试

 

7Junit3.X(了解)

junit3.x是Java5以前的测试方式:

使用junit3.x:

步骤:

1.把junit3.x的测试jar,添加到该项目中来;(添加如下图)

2.定义一个测试类,并让该测试类继承与TestCase类.

测试类的名字:

XxxTest

3.在EmployeeDAOTest中编写测试方法:

publicvoidtestXxx()throwsException{

}

注意:

方法是public修饰的,无返回的,必须以test作为方法的前缀,XXX表示测试的功能名字.

温馨提示:

输入test,按atl+/,再敲回车,就有测试方法,再修改方法的名字.

4.选择某一个测试方法,鼠标右键选择[runasjunit],或则选中测试类,表示测试该类中所有的测试方法.

在Android中的单元测试就是采用的是junit3.x;

若要在测试方法之前做准备操作:

EmployeeDAOTest覆写TestCase中:

protectedvoidsetUp()throwsException方法

若要在测试方法之后做回收操作:

EmployeeDAOTest覆写TestCase中:

protectedvoidtearDown()throwsException方法

执行顺序:

setUp->测试方法->tearDown-->setUp--测试方法2->tearDown

 

8Junit4.X(掌握)

junit4.x基于Java5开始的版本,支持注解.

使用junit4.x:

步骤:

1.把junit4.x的测试jar,添加到该项目中来(导入的方式和junit3一样);

2.定义一个测试类J.(不再继承TestCase类)它只是一个普通的java类

测试类的名字:

XxxTest

3.在EmployeeDAOTest中编写测试方法:

@Test

publicvoidtestXxx()throwsException{

}

注意:

方法是public修饰的,无返回的,该方法上必须贴有@Test标签,XXX表示测试的功能名字.

4.选择某一个测试方法,鼠标右键选择[runasjunit],或则选中测试类,表示测试该类中所有的测试方法.

以后单元测试使用最多的方式:

若要在测试方法之前做准备操作:

EmployeeDAOTest随意定义一个方法并使用@Before标注:

@Before

publicvoidxx()throwsException方法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1