myEclipse中如何使用Junit_第1页
myEclipse中如何使用Junit_第2页
myEclipse中如何使用Junit_第3页
myEclipse中如何使用Junit_第4页
myEclipse中如何使用Junit_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、myEclipse下使用Junit一、准备工作:1 .导入 Junitjar 包;2 .在项目目录下新建一个 SourceFold(一般命名为 test);3 .新建一个测试类 (一般命名规则为: 被测试类名+Test,例如:HelloWordTest) 继承 junit.framework.TestCase类;4 .编写测试方法(方法名必须以 test+用例方法名称);如下:T 好Jimit4.7目网src-com.junit.simplt-jjH&llolfford.j&vaEHillofferd&HellofferdOisOKGtringjbooleiri*siy

2、0:Striiig-testH出com.junit.-|3HellofferdTest.-HelloffcrdT-st6?main(String):vaid有有Hell(String)二、使用Junit进行测试Junit 被用来测试代码,并且它是由能够测试不同条件的断言方法(assertionmethod)组成,常用断言方法如下:assertEquals(a,b)测试 a 是否等于 b(a 和 b 是原始类型数值(primitivevalue)或者必须为实现比较而具有 equal 方法)assertFalse(a)测试 a 是否为 false(假),a 是一个 Boolean 数值。asser

3、tNotNull(a)测试 a 是否非空,a 是一个对象或者 null。assertNotSame(a,b)测试 a 和 b 是否没有都引用同一个对象。assertNull(a)测试 a 是否为 null,a 是一个对象或者 null。assertSame(a,b)测试 a 和 b 是否都引用同一个对象。assertTrue(a)测试 a 是否为 true(真),a 是一个 Boolean 数值。我们使用这些方法来构建 JUnit 测试。当运行一个 JUnit 应用程序时,它打开自己的视图来立即指示哪个测试通过了,哪个测试失败了。被测试类:packagecom.junit.simple;pub

4、licclassHelloUordpublicHelloV/ordOsuperbpublicStringsay()returnHelloWordfpublicbooleanisOK(Strings)IF(s.equals(OK)1elseIreturnfalse:E测试类:(view)importjumit.framework.TestCase;inpartjumit.textui.TestRunner;importcom.junit.simple.HelloWord;publicclassHelloWordTestextendsTestCasepublicHe11oUordTest(Stri

5、ngname)publicuoidtestisDk()HlelloUordhi=newHelloUord();assertFalse(hi-isOKCop,*);publicstaticvoidoain(Stringargs);扩展 TestCas 读;2;覆盖 runTest()方法(可选);3;写一些 testXXXXX(小法;三、Junit4的新特性1.导入 junit4 和 hamcrest-alljar 包;2.assertThat:基本语法:assertThat(value,matcherstatement);value 是接下来想要测试的变量值;matcherstatement

6、是使用 Hamcrest 匹配符来表达的对前面变量所期望的值的声明,如果value 值与 matcherstatement 所表达的期望值相符,则测试成功,否则测试失败。2、使用 hamcrest 的匹配方法2.1、一般匹配符allOf匹配符表明如果接下来的所有条件必须都成立测试才通过,相当于与”(&)1、Hamcrest 的断言语法assertThatassertThat(testedNumber,allOf(greaterThan(8),lessThan(16);anyOf匹配符表明如果接下来的所有条件只要有一个成立则测试通过,相当于或(|)assertThat(testedNum

7、ber,anyOf(greaterThan(16),lessThan(8);anything匹配符表明无论什么条件,永远为 trueassertThat(testedNumber,anything();is匹配符表明如果前面待测的 object 等于后面给出的 object,则测试通过assertThat(testedString,is(developerWorks);not匹配符和 is 匹配符正好相反,表明如果前面待测的 object 不等于后面给出的 object,则测试通过assertThat(testedString,not(developerWorks);2.2、字符串相关匹配符c

8、ontainsString匹配符表明如果测试的字符串 testedString 包含子字符串developerWorks则测试通过assertThat(testedString,containsString(developerWorks);endsWith匹配符表明如果测试的字符串 testedString 以子字符串developerWorks结尾则测试通过assertThat(testedString,endsWith(developerWorks);startsWith匹配符表明如果测试的字符串 testedString 以子字符串developerWorks开始则测试通过assertT

9、hat(testedString,startsWith(developerWorks);equalTo匹配符表明如果测试的 testedValue 等于 expectedValue 则测试通过,equalT。可以测试数值之间,字符串之间和对象之间是否相等,相当于 Object 的 equals 方法assertThat(testedValue,equalTo(expectedValue);equalToIgnoringCase匹配符表明如果测试的字符串 testedString 在忽略大小写的情况下等于developerWorks则测试通过assertThat(testedString,equ

10、alToIgnoringCase(developerWorks);equalToIgnoringWhiteSpace匹配符表明如果测试的字符串 testedString 在忽略头尾的任意个空格的情况下等于developerWorks则测试通过,注意:字符串中的空格不能被忽略assertThat(testedString,equalToIgnoringWhiteSpace(developerWorks);2.3、数值相关匹配符closeTo匹配符表明如果所测试的浮点型数 testedDouble 在 20.0眦围之内则测试通过assertThat(testedDouble,closeTo(20.

11、0,0.5);greaterThan匹配符表明如果所测试的数值 testedNumber 大于 16.0 则测试通过assertThat(testedNumber,greaterThan(16.0);lessThan匹配符表明如果所测试的数值 testedNumber 小于 16.0 则测试通过assertThat(testedNumber,lessThan(16.0);greaterThanOrEqualTo匹配符表明如果所测试的数值 testedNumber 大于等于 16.0 则测试通过assertThat(testedNumber,greaterThanOrEqualTo(16.0);

12、lessThanOrEqualTo匹配符表明如果所测试的数值 testedNumber 小于等于 16.0 则测试通过assertThat(testedNumber,lessThanOrEqualTo(16.0);2.4、collection 相关匹配符hasEntry匹配符表明如果测试的 Map 对象 mapObject 含有一个键值为key对应元素值为value的 Entry项则测试通过assertThat(mapObject,hasEntry(key,value);hasItem匹配符表明如果测试的迭代对象 iterableObject 含有元素“elemen 颐则测试通过assertT

13、hat(iterableObject,hasItem(element);hasKey匹配符表明如果测试的 Map 对象 mapObject 含有键值“ke 则测试通过assertThat(mapObject,hasKey(key);hasValue匹配符表明如果测试的 Map 对象 mapObject 含有元素值“valuer 测试通过assertThat(mapObject,hasValue(key);2.5、Matcher 匹配符联合使用not 和 equalTo表示不等于assertThat(something,not(equalTo(developer);not 和 containsS

14、tring表示不包含子字符串”assertThat(something,not(containsString(Works);anyOf 和 containsString表示包含任何一个子字符串”assertThat(something,anyOf(containsString(developer),containsString(Works);3 、JUnit4 注解Test:测试方法Ignore:被忽略的测试方法Before:每一个测试方法之前运行After:每一个测试方法之后运行BeforeClass:所有测试开始之前运行AfterClass:所有测试结束之后运行四、附录Junit4注解式测

15、试方法示例(测试类不用继承TestCase被测试类:packagecow.juni,simple;EM和.:乱叩誓艇郛:.:?-:5s:.:%s-:2s:i-:M-:.Js.:a-:-i.:i:.s.:?-:-:$;:?:.:publicclassHellopu) )cintadd(intreturnx+y;y)pubXicintdivide(intx.iiity)returnx/y;publicstaticvoidmain(Stringargs)intz=nevrHello().add(3fS):Systemout.println(z);测试类:packacjecom.junit4.test

16、;importstaticerg,junitAssert.*;importstaticarg.hamcrest.Matchers*unportorq.junit.After;zLmortorg-junit.Before;InortorgijunitiBeforeCLass;importorg,junit,AfterClass;importorgijunitiTest;importcoinijunit4.simpleHeLLa;publicclassHelioTest(QBeforeCLasspublicstaticvoidbeforeClass()Systenicut.pirintLn(,Fbeoi:eClass,r);)AtterClasspublicstatic?voidaftsrClass()(Systen*.out.printin(TrsterClassr,):)Beforepublicvoidtoeiore()System-out.printin(*befQi:e*r);)TestpublicvoidtestAdd()inta=newHe

温馨提示

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

评论

0/150

提交评论