兰色精灵 发表于 2015-1-18 11:17:11

了解下JAVA的JUnit断言扩大

Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)
JUnit经由过程制造满意预期需求的断言来测试软件代码单位,可是这些断言只限于基础操纵。IBM软件工程师TonyMorris经由过程引进JUnit断言扩大(AssertionExtensionsforJUnit)弥补了这个空缺,JUnit断言扩大供应了一整套在JUnit框架中实行的庞大断言。上面请随作者的演示一道,懂得怎样利用这个来自alphaWorks的新包来进步Java软件的牢靠性和强健性。
盛行的JUnit主动单位测试框架供应了经由过程制造满意预期需求的断言来测试软件代码单位的路子。但是,这些断言仅范围于基础操纵,比方“断言两个变量相称”和“断言援用变量非null”。基础的JUnit断言是有效的,可是它们没法给出在实际的软件单位测试场景中所必要的浩瀚庞大的断言才能。
JUnit断言扩大(AssertionExtensionsforJUnit,JUnitX)是JUnit框架的一个扩大包,能够从alphaWorks(请参阅参考材料)下载失掉。它供应了良多罕见的庞大断言的需要完成。不必为某个断言编写庞大的JUnit测试用例,能够挪用一个JUnitX办法,制造来自统一高低文的断言——并且不必要分外的设置。JUnitX还宣称它的功效与文档形貌的一样,并包含了本人的JUnit自测套件。这再次包管了JUnitX会依据JUnitX文档来制造断言;假如某个单位测试失利,就能够晓得是软件代码单位失利了,而不是JUnitX的测试完成呈报了一个假失利。
JUnitX会有效的一个典范场景包含java.lang.Object类的equals(Object)办法和hashCode()办法设置的合约。在开辟的类中,一般请求恪守这些合约。用JUnit制造恪守合约的断言,就请求开辟庞大的单位测试用例,而这么做很简单堕落。比拟之下,用JUnitX举行断言十分复杂,就像创立一个前往类的实例的工场完成并从单位测试用例中挪用JUnitX的assertEqualsContract和assertHashCodeContract办法一样复杂。
JUnitX起步
无效利用JUnitX只必要一个最短的进修曲线,假如晓得怎样间接利用JUnit主动测试框架,那末将会发明利用JUnitX扩大包很简单。依照以下步骤便可起步:
假如还没有设置好运转JUnit测试用例的情况,请先设置好。能够参阅在“Automatingthebuildandtestprocess”中具体先容的步骤(请参阅参考材料)。
下载JUnitX包(请参阅参考材料),把JUnitX文档解压到选定目次。
让实行JUnit测试的类装进器可以找到lib/JUnitx.jar文件。
如今能够挪用JUnitx.framework.Assert类上的办法对功效举行断言了,挪用的体例与在典范JUnit测试情况利用JUnit.framework.Assert类的体例相似。JUnitX的在线API文档(请参阅参考材料)供应了JUnitx.framework.Assert类上可使用的办法挪用的具体形貌。
用例场景
假定如今请求完成一个代表人的类。Person类请求有三个属性:title(称号)、firstname(名字)和surname(姓)。title属性是由大概值MR、MS和MRS构成的无限汇合中的一个值,以是筹办用TypesafeEnumeration(范例平安的列举)计划形式来完成一个Title类。中的UML图显现了这些需求今朝的形态。
.需求的UML图表

清单1显现了这些需求的源代码:
<p>
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。

灵魂腐蚀 发表于 2015-1-20 19:27:18

是一种使用者不需花费很多时间学习的语言

只想知道 发表于 2015-1-29 16:58:06

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

飘飘悠悠 发表于 2015-2-4 07:45:16

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

若相依 发表于 2015-2-9 18:48:39

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

乐观 发表于 2015-2-11 20:24:15

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

若天明 发表于 2015-3-1 14:39:55

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

柔情似水 发表于 2015-3-10 18:58:26

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

飘灵儿 发表于 2015-3-11 20:51:57

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

深爱那片海 发表于 2015-3-19 12:54:25

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

因胸联盟 发表于 2015-3-27 23:08:11

是一种使网页(Web Page)产生生动活泼画面的语言
页: [1]
查看完整版本: 了解下JAVA的JUnit断言扩大