|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。
甚么是Jacks?
Jacks测试套件反省Java编译器是不是切合JLS(Java言语标准)。它由大批小测试案例构成,每一个测试都偏重于JLS中特定的部分。EricBlake为Jacks项目作出了很年夜奉献,他从面向细节范畴形貌了这类范例测试的优点。“经由过程天生带有指定编译举动的小测试案例,然后将每一个案例的实行主动化,编译器作者或调试者能够疾速找出Java源码到字节码转换中存在的成绩。”
开辟Jacks面前的观点是要简化对多编译器或多编译器设置所运转的测试(比方,对上两个刊行版的Jikes和Javac的JDK1.3刊行版所举行的一组测试)。假如手工举行,您必需反复地设置情况变量,然后依据所希冀的了局来反省测试了局。而经由过程利用Jacks,只必要变动到寄存测试的目次,挪用Jacks框架,然后标明应当利用哪一个编译器设置。
Sun没有实行对Java开辟者所做的答应引发了Jikes小组对Jacks项目标设置和运转。Sun再三声明它会把Java、JCK(JavaCompatibilityKit)和相干Java手艺交到一个尺度主体的手中。但由于这还没有完成,处置Java项目标开辟者就不克不及利用JCK来对一样平常的开辟举行回回测试。劈面对因为分歧理的允许证限定而招致的代码工资不敷时,他们偏向于用新的更完美的体系来交换旧体系。这就是产生在Jacks上的故事。(只管Jacks由developerWorks掌管,它受GPL而非IBMPublicLicense束缚。)
利用Jacks
Jacks是以Tcl编写的,因而必要确保具有Tcl8.3。(必要版本8.3来确保具有tcltest扩大和Unicode撑持,这二者都是Jacks所必须的)。能够下载用于Windows的安装程序和用于RedHatx86的RPM,也能够更便利地从源代码中构建。假如您不晓得到甚么中央下载,请参阅本文稍后的参考材料部分;假如利用的是RedHat7,极可能已安装了Tcl8.3。
安装了Tcl后,必要从CVS掏出Jacks。然后经由过程将编译器路径名包含在要测试的编译器的Jacks_setup设置文件中来设置Jacks。关于每一个但愿撑持的设置都必要一个_setup文件。比方,Jacks带有javac_setup文件。必要编纂该文件来为javac设置路径。EricBlake说,“最坚苦的部分是判定怎样测试Jikes,由于我在情况中已设置了JIKESPATH。但我想出了要在jikes_setup设置文件中变动甚么内容,统统都很顺遂。”
从CVS模块中掏出Jacks源代码
setenvCVSROOT:pserver:anoncvs@oss.software.ibm.com:/usr/cvs/jikes
cvslogin
paswsdanoncvs
cvscheckoutjacks
能够对数目不限的编译器或编译器设置利用Jacks。要撤除某一编译器的设置,只必要删除其_setup文件。
从CVS中掏出源代码后,就必要在路径中包含顶层Jacks目次,如许才干运转Jacksshell剧本。为审慎起见,最后运转shell剧本时应当不带任何自变量,以确保每项都经由准确设置。
%jacks
假如统统一般,将看到Jacks剧本所承受的命令行选项的清单。假如收到毛病,请反省在路径中是不是能找到可实行文件tclsh8.3。Windows用户必要间接运转tclsh83,并将jacks.tcl自变量在一样平常标记之前传送给它。还应当思索安装CygwinUNIX兼容性层,如许,象Unix用户一样,您就能够利用供应的shell剧本来运转Jacks了。上面的指令假定您利用的是shell剧本。
关于测试示例,必要利用Jikes编译器来运转给定子目次中的一切测试,命令以下:
%cdtests/jls/packages/package-declarations/unnamed-packages
%jacksjikes
<p>
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。 |
|