单元测试是保证软件质量的一种必须的测试,大小软件都应该进行单元测试,因此,必须进行单元测试,现在大的公司都要求进行单元测试,CMMI也要求进行单元测试。作为一个程序员,如果你说你不了解单元测试,不会编写单元测试用例,会很惭愧的,呵呵。
在Eclipse中配置Junit的方法有两种方式:
第一种方法:
1、下载junit的jar包,目前它的版本是junit3.8.1,可以从www.junit.org上下载。
2、在要使用Junit的project名上,点击properties--java build path-libraries, 点击Add External JARs,把Junit包点上就行了。如图所示,点击Add External JARs,选择相应的Junit包
第二种方法:
1、在要使用Junit的project名上,点击properties--java build path-libraries, 点击Add library,选择JunitT即可。如图1所示,在图1中点击Add library,在弹出的对话框中选择Jnuit,如图3所示,接下来选择junit版本即可。
参考附件中的junittest-1.rar。其中定义了需要单元测试的类:com.cvicse.test.junit. JunitTest
简单的步骤:
1、建一个project工程,工程名字为junittest。
2、建立一个包,名字为com.cvicse.test.junit。
3、建立一个类JunitTest,其内容如下:
package com.cvicse.test.junit; public class JunitTest { public boolean method1(int comp){ //do something if(comp>5){ //do something return false; }else{ //do something return true; } }
选择要单元测试的类junittest,点击右健,选择”new”---“other”---“java”—“junit”—“junit test case”
1、选择第一个对话框中的属性,一般需要选择setup复选框和teardown
Setup函数用于测试的初始化,而teardown用于测试的销毁,前者相当于c++中的构造函数和析构函数。
2、进入第二个对话框,选择需要测试的类方法,一般只是选择被测试类本身的方法,
上图中的junittest中的method1就是被测试类的实现方法。
3、点击finish,自动生成该类的测试类JunitTestTest
4、生成的代码如下所示。
package com.cvicse.test.junit; import junit.framework.TestCase; public class JunitTestTest extends TestCase { protected void setUp() throws Exception { } protected void tearDown() throws Exception { } public void testMethod1() { fail("Not yet implemented" ); } }
一般情况,按照“建立类的junit类”的方法建立的测试单元,一般与源码工程在同样的包中,混杂在一起,需要将其分离。
分离步骤:
1、 在工程名下新建立“source folder”,命名为test,拷贝/src/*.*到/test下,并删除非testcase类
2、 在源码/src中建立testcase类,然后移动到/test对应的目录下,
3、 执行如果出现错误:”test type does not exist”,则需要将/test目录添加工程的source属性中:工程右健—“properties”—“java build path”—“source”—“add folder”—选择/test
4、 如果需要的配置文件在web-inf下,则需要拷贝到src目录下。
建立单元测试的工程如:junitTest-2.rar
目前覆盖率测试一般用jcoverage或者cobertura工具。
使用cobertura测试的配置文件为:cobertura/build.xml,为ant脚本。
工程参考:junitTest-3.rar;
下面对cobertura进行详细的介绍:
1、 利用cobertura可以自动产生单元测试的报告,该报告可以反映出单元测试的一个标准。它能反映代码的覆盖率和分支的覆盖率。在CMMI中关于测试报告的要求还是非常重要的,cobertura文件夹放到工程中的下面即可以,关键是配置buid.xml。
具体做法,请看TestForJunit工程。
2、 将该工程导入到eclipse下。
3、 点击cobertura文件夹下的buid.xml
4、 选中buid.xml,点击右键,选择run中的1 ant,就会自动产生报告。
5、 其中cobertura中的classes、instrument和reports都是编译产生的
注意:
setUp与tearDown 这两个函数是junit framework中提供初始化和反初始化每个测试方法的。setUp在每个测试方法调用前被调用,负责初始化测试方法所需要的测试环境;tearDown在每个测试方法被调用之后被调用,负责撤销测试环境。它们与测试方法的关系可以描述如下:
测试开始 -> setUp -> testXXXX -> tearDown ->测试结束