一.什么是单元测试
通俗的讲,比如我写了一个类,我这个类是要给别人用的,在别人用之前我要测试这个类是否有bug。这中测试就是单元测试。
二.为什么要进行单元测试
(一)在团队开发项目的过程中,我写了一个类库,而这个类库要和别人写的类结合使用,那么当别人调用你类库中的方法后程序结果出错了,那么到底是谁的错误就不好区分了,因此,在别人调用你的类库时,你要先保证你的类库时没有问题的。因此对你的类库进行测试喽!
(二)在项目开发的过程中,项目的问题发现的越晚,那么所造成的经济损失也就越大,因此在项目维护的过程中的花费是最大的,具有关调查发现,在一个软件项目中,后期维护和升级所占的成本费用可以占到整个项目成本的60%左右。因此能越早发现问题,或者越早把程序写的越健壮越好,这也就要用到了单元测试。当然,对于一些形象工程来说,单元测试就显的不那么重要了。
三.junit简介
Junit是一个开源的Java单元测试框架,它由Kent Beck和Erich Gamma建立,JUnit4框架中运用了Java5的Annotation接口简化测试用例的编写。
四.junit4中helloworld级别的小实例
(一)在myeclipse中创建一个Java project(JUnit4),在这个project建立一个package(zj.junit4),在package中建立一个开发的类(T.java).在T.java中写好类的方法,此处的方法如图。注意:读者先不要管图中的JUnit 4和Referenced Libraries这两个文件。
(二)在project中建立另一个package(zj.junit4.test),在这个package中建立测试类(TTest.java)。可以在package中点击鼠标右键,建立JUnit Test Case.此处类的名字为TTest。注意:而且这里选择junit4.
(三)点击Class under test中的Browse按钮,选择要测试的类,此处为对T这个类进行测试。
(四)选中这个类之后点击OK,回到上一层对话框,点击next,然后弹出的对话框中还可以选择对这个类中的哪个方法进行测试。此处选择add()方法,点击Finish.
(五)此时会弹出以下对话框,但是myeclipse自身带了junit的jar包,如果你不想用最新版的jar,可以直接用myeclipse中的jar包。
(六)myeclipse会自动生成testAdd()方法
(七)在testAdd()方法中写如下的测试代码,然后点击右键的Run As中的JUnit Test,出现如图的绿框,测试成功!注意:Failure是指测试失败,Error是指测试程序本身出错
总结:在junit测试领域有一句话,叫做”keeps the bar green to keeps the code clean”。至于意思大家应该都懂吧。这里就不解释了。还有一点就是,我们最好不要用就的assert,而用assertthat更合适,因为assertthat比assert更自然,但是使用assertthat必须要下载hamcrest包,这两个包就请大家到网上下载吧!