教辅材料junit简介我们在编写大型程序时候需要成千上万个方法或函数这些功能_第1页
教辅材料junit简介我们在编写大型程序时候需要成千上万个方法或函数这些功能_第2页
教辅材料junit简介我们在编写大型程序时候需要成千上万个方法或函数这些功能_第3页
教辅材料junit简介我们在编写大型程序时候需要成千上万个方法或函数这些功能_第4页
教辅材料junit简介我们在编写大型程序时候需要成千上万个方法或函数这些功能_第5页
已阅读5页,还剩5页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正bug之后都应该对这个函数的方方面面进试这样的测试我们称之为单元测试。因为如此麻烦,所以程序员们编写单元测试的热情不是很高。于是有一个牛人推出了单元测试包,大大简化了进行单元测试所要做的工作,这就是JUnit4。Eclipse3.2JUnit4首先,我们来一个傻瓜式速成,不要问为什么,FollowMe,先来体验一下单元测试的!packagepublicclassCalculatorprivatestaticintresult;//静态变量,用于运行结publicvoidadd(intn)...{result=result+n;}publicvoidsubstract(intn)result=result-1;//Bug:正确的应该是result=result-}publicvoidmultiply(intn)publicvoiddivide(intn)...{result=result/n;}publicvoidsquare(intn)...{result=n*n;}publicvoidsquareRoot(intn)for(;;);//Bug:死循环}publicvoidclear()...{//将结果result=}publicintgetResult()...{returnresult;}}在弹出的属性窗口中,首先在左边选择“JavaBuildPath”,然后到右上点击该类弹出菜单,选择“JUnit测试用例”。如下图所示:在弹出的框中,进行相应的选择,如下图所示CalculatorTest,里面包含一些空的测试用packageimportstaticorg.junit.Assert.*;importorg.junit.Before;importorg.junit.Ignore;importorg.junit.Test;publicclassCalculatorTestprivatestaticCalculatorcalculator=newCalculator();publicvoidsetUp()throwsException...{}publicvoidtestAdd()...{assertEquals(5,}publicvoidtestSubstract()...{assertEquals(8,}@Ignore("Multiply()Notyetimplemented")publicvoidtestMultiply()}publicvoidtestDivide()...{assertEquals(4,}}第四步运试代码按照上述代码修改完毕后我们在类上点右键,选择“RunAsàJUnitTest”来运行我们的测试,如下图所示:进度条是红颜色表示发现错误具体的在进度条上面有表示“共进41EclipseJUnit4。JUnit4Package还有一句话也非常地重要“importstaticorg.junit.Assert.*;”,我们在测assertEqualsAssertAssert.二、测试类的一个测试类,它与普通类的区别在于它内部的方法的,我们接着会讲到。privatestaticCalculatorcalculator四、测试方法的publicvoidtestAdd()...{assertEquals(5,}0235。如果最终实际结果也是5,则说明add方法是正确的,反明它是错的。assertEquals(5,写好之后,JUnit会自动进试并把反馈给用户。wordendJunitspringJunitJUnit及其相关的单元测试技术六、忽略测试某些尚未完成的方法尚未完成那么测试的时候一定是“失败”这种失败和真正是有区别的,因此JUnit提供了法来区别他们,那就是在这种测试函数的前面加上这样的话就会提示你有几个测试被忽略,而不是失败。一旦你完成了相应函数,只需要把@Ignore七、Fixture(Fixture试,由于只了一个Calculator对象,他的初始值是0,但是测试完加法操0CalculatorFixture,我们用@BeforepublicvoidsetUp()throwsException...{}Fixture,使用@AfterFixture@Before@After,我们来看看他们是否适合完成如下功能:有一个类是负责对大文件(超过500操作。如果我们使用@Before和@After,那么每次测试都要一次文件,效率它给出了@BeforeClass和@AfterClassFixtureFixture行@BeforeClass@AfterClass工作。在这里要注意一下,每个测试类只能有一个方法被标注为@BeforeClass或@AfterClass,PublicStaticpublicvoidsquareRoot(intn)for(;;);//Bug:死循环}函数结束的原因是因为超时,这样你就可以发现这些Bug了。要实现这能,只需要给@Test@Test(timeout=publicvoidsquareRoot()...{assertEquals(2,calculator.getResult());}三、测试异常JAVABug,并JUnitBug。例如,我们写的计算器类有除能,如果除数是一个0,那么必然要抛出“除0异常”。因此,我们很有必要对这些进试。代码如下:@Test(expected=ArithmeticException.class)publicvoiddivideByZero()...{}如上述代码所示,我们需要使用@Testexpected四、RunnerRunnerRunnerRunnerJUnitRunner,Rernal.runners.TestClassRunner;importorg.junit.runner.RunWith;publicclassCalculatorTest...{}publicclassCalculatorTest}Runner,需要使用@RunWithRunner,那么这个类中的所有函数都被这个Runner来调用最后了包含相应的Package哦,上面的例子对这一点写的很清楚了。接下来,我会向展示其他RunnerwordendJunitspringJunitJUnitimportorg.junit.AfterClass;importorg.junit.Before;importorg.junit.BeforeClass;importorg.junit.Test;importstaticorg.junit.Assert.*;publicclassAdvancedTest...{privatestaticCalculatorcalculator=newCalculator();publicvoidclearCalculator()...{}publicvoidsquare1()...{assertEquals(4,}publicvoidsquare2()...{assertEquals(0,}publicvoidsquare3()...{assertEquals(9,}}试函数,把这若干种情况作为参数传递进去,的完成测试。代码如下:importstaticorg.junit.Assert.assertEquals;importorg.junit.Test;importimportimportorg.junit.runners.Parameterized.Parameters;importjava.util.Arrays;importjava.util.Collection;publicclassSqua

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论