网站大量收购闲置独家精品文档,联系QQ:2885784924

JUnit及其相关的单元测试技术.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JUnit及其相关的单元测试技术

JUnit及其相关的单元测试技术 在实际的工作中,很多项目都没有写单元测试用例。写单元测试用例常常是程序员十分厌倦的一个项目活动,很多人觉得没有必要、浪费时间。所有这些都是因为没有认识到测试的重要性:测试能够使我们尽量早的发现程序的bug,一个bug被隐藏的时间越长,修复这个bug的代价就越大。在《快速软件开发》一书中已引用了大量的研究数据指出:最后才修改一个bug的代价是在bug产生时修改它的代价的10倍。在现代软件开发过程中,不管是xp还是rup都是十分重视单元测试,已经把单元测试作为贯穿整个开发周期的一项重要的开发活动。单元测试如此重要,那么怎样写好单元测试用例呢?这就需要了解Junit及其相关的测试工具了。 1.Junit简介: 1.1内容摘要 Junit是由Erich Gamma和Kent Beck编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用。Junit测试是程序员测试,即所谓白盒测试。下面我们以一个简单的例子来介绍如何使用Junit4同Junit3编写测试用例: 先写个简单的被测试类: public Class XXXX{ public String hello(){ returnhello; } } 对于这个类的用junit3编写测试用例: import junit.framework.TestCase; public Class XXXXTest extends TestCase{ public void testHello(){ asssertEqual(new XXXX().Hello(),hello); } } 用junit4编写测试用例: import static org.junit.framework.assertEqual; import org.junit.Test; public Class XXXXTest{ @Test public void helloTest(){ asssertEqual(new XXXX().Hello(),hello); } } 从上面例子我们对Junit3和Junit4有了一个初步的印象,下面我们重点介绍Junit4与Junit3的主要区别。 1.2 Junit4与Junit3的主要区别 1.2.1 Junit4引入了java 5.0的注释技术: 这两个版本最大的区别在JUnit3.x中测试必须继承TestCase,并且每个方法名必须以test开头。比如:testMethod1()而在JUnit4.x中不必继承TestCase,采用了注解的方式。只要在测试的方法上加上注解@Test即可,从而不必再遵循以前的一些显式约定和反射定位测试;在JUnit4.x中如果继承了TestCase,注解就不起作用了。并且有很重要的一点就是在JUnit4.x中继承了TestCase后,在OutLine视图中测试单个方法时,结果整个类都run了。还有一点就是,在3.x中需要实现setUp和tearDown方法,而在4.x中无需这样,可以自定义需要在测试前和测试后的方法,在方法前加上@before,@after就可以了。所以在JUnit4.x不必继承TestCase用注解即可对单个方法进行测试。 1.2.2 JUnit4引入了一个JUnit3中没有的新特性--类范围的setUp()和tearDown()方法。 任何用@BeforeClass注释的方法都将在该类中的测试方法运行之前刚好运行一次,而任何用@AfterClass注释的方法都将在该类中的所有测试都运行之后刚好运行一次。 1.2.3异常测试: 异常测试是Junit4中的最大改进。Junit3的异常测试是在抛出异常的代码中放入try块,然后在try块的末尾加入一个fail()语句。 例如该方法测试一个被零除抛出一个ArithmeticException: 该方法不仅难看,而且试图挑战代码覆盖工具,因为不管测试是否通过还是失败,总有一些代码不被执行。在JUni4中,可以编写抛出异常的代码,并使用注释来声明该异常是预期的: 如果没有异常抛出或者抛出一个不同的异常,那么测试就将失败。 1.2.4 JUnit4添加了两个比较数组的assert()方法: public static void assertEquals(Object expected,Object actual) public static void assertEquals(String message,Object expected,Object actual) 这两个方法以最直接的方式比较数组:如果数组长度相同,且每个对应的元素相同,则两个数组相等,否则不相等。数组为空的情况也作了考虑。 1.3

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档