软件测试课件第八章eclipse中集成junit_第1页
软件测试课件第八章eclipse中集成junit_第2页
软件测试课件第八章eclipse中集成junit_第3页
软件测试课件第八章eclipse中集成junit_第4页
软件测试课件第八章eclipse中集成junit_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

JUnit单元测试:Eclipse中集成JUnit4辛立伟主要内容Eclipse中集成JUnit4.x;在Eclipse中安装JUnit4在Eclipse中创建JUnit4测试在Eclipse中运行JUnit4测试目标掌握在Eclipse中创建和运行单元测试的方法KP-1Eclipse中集成JUnit4.x;在Eclipse中安装JUnit4在Eclipse中创建JUnit4测试在Eclipse中运行JUnit4测试安装JUnit从JUnit站点()下载JUnit4.x.jar。下载的junit-4.*.jar是JUnit的库。添加其jar包如下图所示:KP-2Eclipse中集成JUnit4.x;在Eclipse中安装JUnit4在Eclipse中创建JUnit4测试在Eclipse中运行JUnit4测试Eclipse中创建JUnit测试1、准备:创建一个新的项目“JUnitTestDemo”。我们想要在一个单独的文件夹中创建该单元测试。因此,在项目上单击右键,选择【Properties】并选择【JavaBuildPath】,创建一个新的源文件夹“test”。选择【Source】标签页。如下图所示:Eclipse中创建JUnit测试按下【AddFolder】按钮,然后按下【CreateNewFolder…】。创建文件夹“test”。如下图所示:Eclipse中创建JUnit测试创建结果如下图:Eclipse中创建JUnit测试为测试创建一个单独的文件夹并不是强制性的要求。不过这是一种好的习惯,能保持测试代码与正常代码的分离。Eclipse中创建JUnit测试2、创建一个Java类接下来,创建一个包“com.xuejava.junit.first”然后创建如下所示的类:packagecom.xuejava.junit.first;publicclassMyClass{

publicintmultiply(intx,inty){ returnx/y; }}Eclipse中创建JUnit测试3、创建一个单元测试选择我们刚刚创建的这个类,鼠标右键单击,并选择【New】|【JUnitTestCase】,选择【NewJUnit4test】。确保改变源目录到test目录。如左图所示:

Eclipse中创建JUnit测试3、创建一个单元测试按下【Next】按钮,选择我们想要测试的方法。如下图所示:

Eclipse中创建JUnit测试如果我们还没有将JUnit加入到环境变量,Eclipse将询问我们是否应该将JUnit库添加到classpath。Eclipse中创建JUnit测试创建一个测试,编辑代码如下所示:packagecom.xuejava.junit.first;importstaticorg.junit.Assert.*;importorg.junit.Test;publicclassMyClassTest{ @Test publicvoidtestMultiply(){ MyClasstester=newMyClass(); assertEquals("结果",50,tester.multiply(10,5)); }}KP-3Eclipse中集成JUnit4.x;在Eclipse中安装JUnit4在Eclipse中创建JUnit4测试在Eclipse中运行JUnit4测试Eclipse中运行JUnit测试4、通过Eclipse运行单元测试:在新的测试类上右键单击,并选择【RunAs】|【JUnitTest】。如下图所示:

Eclipse中运行JUnit测试4、通过Eclipse运行单元测试:这个测试应该是失败的(通过红色栏来标识)。如下图所示:

Eclipse中运行JUnit测试4、通过Eclipse运行单元测试:这是因为事实上,我们的乘法类当前工作并不正确(它完成的是除法运算而不是乘法运算)。修正这个bug,将除法运算改为正确的乘法运算,并重新运行这个测试,这时会获得一个绿色的标识栏。如下图所示:

Eclipse中运行JUnit测试5、通过Eclipse运行单元测试套件:如果我们有多个测试,我们可以将它们合并到一个测试套件。如果我们运行这个测试套件,在这个测试套件中的所有测试都将会被执行。要创建一个新的测试套件,选择我们要测试的类,鼠标右键单击,选择【New】|【Other】|【JUnitTestSuite】,如下图所示:

Eclipse中运行JUnit测试5、通过Eclipse运行单元测试套件:选择【Next】,接下来选择要进行测试的方法。编辑代码如下,使得测试套件运行我们的测试。如果我们稍后开发另外的测试,我们可以添加它到@Suite.SuiteClasses。

packagecom.xuejava.junit.first;importorg.junit.runner.RunWith;importorg.junit.runners.Suite;importorg.junit.runners.Suite.SuiteClasses;@RunWith(Suite.class)@SuiteClasses({MyClassTest.class})publicclassAllTests{}JUnit单元测试代码规范本规范来自JUnit自身的编程规则以及最佳实践:单元测试代码应位于单独的SourceFolder下(通常为test目录,这样可以方便管理业务代码和测试代码);测试类应跟被测试类位于同一package下,这样便于进行管理,同时减少引入带测试类的麻烦;选择有意义的测试方法名(publicvoidtestXXXX());保持测试的独立性。即每项单元测试都必须独立于其他所有单元测试而运行,因为单元测试须能以任何顺序运行;为暂未实现的测试代码抛出失败(fail)或忽略(ignore)在调用断言(assert)方法时,给出失败的原因。即在使用断言方法时,使用带有message参数的api,并在调用时给出失败时的原因描述。如:assertNotNull(“对象为null”,newObject());附:JUnit注解注解描述@Test

publicvoidmethod()@Test注解标识这个方法是一个测试方法@Before

publicvoidmethod()将在每个测试前执行method()。这个方法可以用来准备测试环境,如读取输入的数据,初始化类等@After

publicvoidmethod()在每个测试后执行method()方法。@BeforeClass

publicvoidmethod()将在所有的测试开始前执行这个方法。这个可以被用来执行时间敏感的活动,如被用来连接数据库@AfterClass

publicvoidmethod()将在所有的测试结束后执行这个方法。这个可以被用来执行清除活动,如被用来断开与数据库的连接@Ignore将忽略该测试方法,比如,如果后台的代码被改变了,而测试还没有被调整,或者如果这个测试的运行时太长了无法包括在内,这个时候用这个注解@Test(expected=IllegalArgumentException.class)测试是否这个方法抛出命名异常@Test(timeout=100)如果这个方法执行超过了100毫秒,就失败附:断言断言描述fail(String)让方法失败,检查代码的一个特定部分无法到达时也许有用。assertTrue(true)TrueassertsEquals([Stringmessage],expected,actual)测试值是否相同。注意:对于数组,检查的是引用而不是数组的内容assertsEquals([Stringmessage],

expected,actual,tolerance)用于float和double;tolerance是必须保持一致的精度值assertNull([message],object)检查对象是否为nullassertNotNull([message],object)检查对象是否不为nullassertSame([String],expected,actual)检查两个变量是否引用同一个对象assertNotSame([String],expected,actual)检查两个变量没有引用同一个对象assertTrue([message],booleancondition)检查bo

温馨提示

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

评论

0/150

提交评论