MyEclipse中使用Junit插件进行单元测试.docx
- 文档编号:6229689
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:10
- 大小:239.86KB
MyEclipse中使用Junit插件进行单元测试.docx
《MyEclipse中使用Junit插件进行单元测试.docx》由会员分享,可在线阅读,更多相关《MyEclipse中使用Junit插件进行单元测试.docx(10页珍藏版)》请在冰豆网上搜索。
MyEclipse中使用Junit插件进行单元测试
Eclipse中使用Junit插件进行单元测试
单元测试简介
单元测试指的是使用编写好的测试代码来检验需要被测试的代码。
我们通常给要测试的方法传入一些参数值,然后检测方法的返回值跟预期是否一致。
一般情况下我们会传入一些容易引发错误的数据,例如给计算除法的方法传入除数0,并且测试的参数也会传入许多组,这样才能保证测试效果。
为什么要使用单元测试
注:
如果你时间不多请直接看后面的粗体
每当别人提起“单元测试”都会让william的内心难受上好长一阵子,往往他的好心情也会一扫而光。
这又是为什么呢?
缺少单元测试的项目很难达保证程序质量。
我们编写代码时,一定会反复调试保证它能够编译通过。
如果是编译没有通过的代码,没有任何人会愿意交付给自己的老板。
但代码通过编译,只是说明了它的语法正确;我们却无法保证它的语义也一定正确,没有任何人可以轻易承诺这段代码的行为一定是正确的。
幸运的是单元测试会为我们的承诺做保证。
编写单元测试就是用来验证这段代码的行为是否与我们期望的一致。
有了单元测试,我们可以自信的交付自己的代码,而没有任何的后顾之忧。
单元测试的优点
1、单元测试是一种验证行为
当针对一个Java类的测试用例写好之后,日后再向这个Java类添加新的方法并不影响存在的测试用例,由于测试用例是对以前的方法测试,因此不会映像到测试用例,我们只需向测试用例加入对新方法的测试即可。
2、从旁观者的角度编写测试用例
程序设计者讲UML类图画好之后,程序就有了类结构,这时对这个类中的方法编写测试用例,然后程序员开始讲类的具体内容实现。
写好之后让测试用例测试。
编写的顺序是先写测试用例再写程序具体代码,单元测试可以保证测试用例绝对客观、公正。
因为他是在具体程序之前编写的。
3、代码可以反复被测试用例测试
第一个测试用例
创建一个Java类Calculation,完成加减乘除四则运算。
在新创建的类“Calculation”上右键——New——Other,弹出New对话框,选择JUnitTestCase,如下图:
Next,点击“Clickhere”导入JUnit包,如下图:
点“OK”后,警告解除,点“Next”
勾选刚才创建的加、减、乘、除方法,然后点“Finished”。
可以看到JUnit在当前包下创建了一个名叫“CalculationTest”的测试类:
下面可以写测试方法了:
右键RunAs——JUnitTest,没有任何错误和失败,方法add通过单元测试。
可以修改一下代码,让assertEquals方法的两个参数不相等,再执行单元测试,就会看下面的错误提示:
只有打有“@Test”标识的测试方法才在单元测试时执行。
JUnit窗口可以通过Window——ShowView里选择,如图示:
JUnit4语法结构
最新JUnit4版本语法和从前相比语法异常简单,初学者10分钟就能全部掌握。
1、任意给Junit测试用例起类名,但需要符合正常的Java类命名规范。
2、测试用例类不用继承超类以及实现接口
publicclassCalculationTest{}
3、如果希望在执行测试之前运行某些代码,例如连接数据库、创建工厂类对象和初始化变量等等,我们可以将这样的代码写到一个方法之中,方法名字自己任意定义。
但是需要在方法之前添加元数据“@Before”
@Before
publicvoidsetUp()throwsException{
calc=newCalculation();//在测试开始前首先实例化一个Calculation对象
}
上面的例子看到,在执行测试之前对calc引用进行实例化。
这样的代码应该被放在测试之前执行,否则在测试过程中calc没有被初始化,它的值只能是null。
4、如果那些代码需要在测试执行之后运行,例如关闭数据库连接、关闭线程池以及关闭数据库连接池等等,我们还是将他们写道一个方法中,在方法前加入“@After”。
@After
publicvoidsetDown()throwsException{
//这里写入代码
}
5、定义测试方法。
1)方法名任意起
2)方法前面加上“@Test”
3)方法中可以定义测试的代码
6、测试上传异常
@Test(expected=IllegalArgumentException.Class)
方法前的这句元数据意思是期待抛出IllegalArgumentException类型的异常
7、测试时间
测试时间指的是当超过指定的时间,测试仍然没有结束,则判定测试失败。
@Test(timeout=500)
publicvoidtestGetConnection(){
//写入测试代码
}
上面的代码意味着当500毫秒之后,测试没有结束测试就失败。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MyEclipse 使用 Junit 插件 进行 单元测试