Junit的单元测试介绍.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

、、、、、、、、、、、、、、、、、、、

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

单元测试规范

单元测试使用Junit4进行测试,Eclipse内置了Junit4的支持。

测试类命名

在项目的DAO与service层的实现类都必须编写测试用例,action由于struts2.0支持测试,所以也应该测试:

测试用例命名规则为:类名+Test。(junit4支持非这样的命名方式,但是为了统一管理,还是采用这样的方式命名)

建立一个和src平行的test包,所有测试用例都放在相应的包内,便于统一管理,合成测试套件。

同一个包的测试用例,合成一个测试套件。

整个工程的测试套件,合成一个统一的测试套件。

测试用例的编写

测试方式都是test开头的方法(testXXXX),JUnit按照在测试用例中的顺序执行。测试方法可以和被测试的方法一一对应,测试方法也可以包含多个被测试的方法。

测试方法中,使用断言(assertXXX和fail,详细资料请查阅JUnit文档)来进行测试结果判断,也可以辅以文字打印说明,如果测试程序抛出异常,则显示为错误,如果断言失败,则显示故障。

测试用例必须覆盖被测试类、方法的所有功能,包括正常情况、异常情况和发

生错误的情况都必须覆盖,才能保证测试的完整性。

测试数据的准备

为了防止数据库的更改对测试结果的影响,测试数据由统一的sql脚本来创建,测试前执行一下脚本创建数据。也可以使用数据回滚的方式进行与数据相关的测试。

实体层的测试

由于本次项目的Entitymodel由之前的贫血模型改为到充血模型,所以对于Entity

的测试不能够再忽略,对于Entity自身的除set/get以为的方法都应该进行单元测试。

DAO层的测试

每一个DAO类都必须编写测试用例,对DAO的每一个公开方法进行测试,测试用例必须使用有代表性的测试代码,覆盖的所有可能的输入和输出情况,包括创建,更改,删除对象以及输入错误数据等测试。

Service层的测试

Service层的测试必须测试Service对象是否满足功能要求,事务完整性等功能。

Struts层和浏览器层的测试

待定…

Eclipse中JUnit的用法

这里不详细介绍JUnit的用法,详细的用法自己找文档进行学习。下面举一个简单的例子说明Eclipse中JUnit的用法:

我们假设我们要写一个整数除法的类,并且给他写测试用例:

/**@authorbulargy.j.bai*

/**

@authorbulargy.j.bai

*@创建时间:Mar10,2008

@描述:

*/

publicclassMath{

publicstaticintdivide(intx,inty){

returnx/y;

}

publicstaticintmultiple(intx,inty){

returnx*y;

}

}

建立测试用例

选中需要建立测试用例的包,选择new-other。

这里main方法不需要,我们可以直接用IDE进行测试。setUp()方法在测试方法前调用,一般用来做测试准备工作。tearDown()方法在测试方法后调用,一般作测试的清理工作。

setUpBeforeClass()方法在整个类初始化之后调用,一般用来做测试准备工作。tearDownAfterClass()方法在整个类结束之前调用,一般作测试的清理工作。constructor()为是否包含构造方法。

选择下一步:

选择需要测试的方法,完成。

系统生成以下代码:

/**

/**

@authorbulargy.j.bai

*@创建时间:Mar11,2008

@描述:

*/

publicclassMathTest{

@BeforeClass

publicstaticvoidsetUpBeforeClass() throwsException{

}

@AfterClass

publicstaticvoidtearDownAfterClass() throwsException{

}

@Test

publicvoidtestDivide(){

fail(Notyetimplemented);

}

@Test

publicvoidtestMultiple(){

fail(Notyetimplemented);

}

}

说明:

@BeforeClass标签注释的方法用于在整个类测试过程的初始化后调用一次,@AfterClass标签注释的方法则是整个测试类结束之前调

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档