|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。
择要不克不及由于JavaMicroEdition缺少反射才能就说JavaMicroEdition开辟者没法使用JUnit作风测试的长处。实在,借助于具有JUnit作风的别的一些框架和工具,JavaME开辟职员仍旧可以改善JavaME使用程序的开辟质量。本系列文章(两篇)恰是想具体切磋J2MEUnit和JMUnit这两个开源框架在JavaME单位测试开辟中的使用。
1、弁言
现在,JUnit测试正在渐渐成为年夜多半Java尺度版(SE)和企业版(EE)使用程序开辟中的基础构成部分-关于那些主动反对测试驱动开辟者特别云云。KentBeck和EricGamma的最后的Smalltalk框架变得云云盛行和乐成,以致于它被移植到良多编程言语中,包含Ada(AUnit)、C#(NUnit)、Python(PyUnit),乃至另有Fortran(fUnit)。理论证实,Java的JUnit是一切的单位测试框架中最乐成的而且已派生出很多JUnit"变种"(以各类"扩大"的情势),这些框架终极匡助在从多线程Java使用程序到初级企业Java使用程序的支流开辟中完成单位测试。
但是,利用JUnit或找到一种JUnit扩大用于JavaMicroEdition开辟一向以来倒是很难的事变。须知,JUnit框架依附于Java反射API。因为JavaME情况中还不撑持反射API,以是,典范的很年夜水平上依附于反射的JUnit工具还不克不及匡助举行JavaME开辟。只管云云,已呈现两个专门针对设备使用程序开辟者构建的JavaMEJUnit扩大。值得注重的是,跟着NetBeans和NetBeansMobility5.5的刊行,NetBeans和NetBeansMobilityPack正在企图兼并一个JavaMEJUnit作风的框架。这类新版本的IDE将以一种更加利索的体例在你的JavaME使用程序中到场单位测试。
本文将经由过程利用JavaMEJUnit框架向你先容JUnit测试;经由过程本文,你会发明,怎样猎取这些工具,怎样利用它们举行测试和怎样利用它们来构建质量更好的软件。
2、猎取JavaME单位测试框架
现在,市场上存在两个可用的JavaMEJUnit测试框架,它们是J2MEUnit和JMUnit。这两个工程都是可自在下载的开源框架,你能够从SourceForge.net高低载一个打包文件。
但是,这两个开源工程的工程主管(ElmarSonnenschein和BrunnoSilva,分离保护J2MEUnit和JMUnit),正在企图把这两个框架兼并为一个。新的工程将在J2MEUnit工程基本上失掉进一步牢固。依据Sonnenschein自己的说法,"由于更多的现有效户的工程都是基于SourceForge上的J2MEUnit框架;以是,我们企图基于Brunno的JMUnit2.0创立一个J2MEUnit2.0刊行版本。"Silva在一次比来的旧事公布会上宣称在往年岁尾大概没法完成产物的兼并和一个2.0版本的刊行。Silva进一步倡议说,新的工程"不想损坏这两个框架确当前用户的原有代码,因而,原始代码会持续存在,只是不再倡议利用。新的单位框架应当展示出两个框架-JMUnit和J2MEUnit-各自的特征。"
3、一个复杂的示例使用程序
在剖析各类单位测试框架之前,你必要一些复杂的代码以备测试之用。在这个例子中,上面这个复杂的Conversion类可以用于创立并测试JavaME单位测试。
publicclassDistanceConversion{
publicstaticintfeetToMeters(intft){
return(ft*3048)/10000;
}
publicstaticintmetersToFeet(intmeters){
return(meters*3281)/1000;
}
publicstaticintmilesToKM(intmiles){
return(miles*1609)/1000;
}
publicstaticintkmToMiles(intkm){
return(km*6214)/10000;
}
}
publicclassTemperatureConversion{
publicstaticfloatfahrenheitToCelsius(floatdegrees){
return((degrees-32)/9)*5;
}
publicstaticfloatcelsiusToFahrenheit(floatdegrees){
return((degrees*9)/5)+32;
}
publicstaticbooleanisHotter(floatdegFaren,floatdegCel){
return((fahrenheitToCelsius(degFaren))-degCel)>0;
}
publicstaticbooleanisCooler(floatdegFaren,floatdegCel){
return((fahrenheitToCelsius(degFaren))-degCel)<0;
}
}
<p>
轮性能微软曾做过一个例子,就是同一个项目用java和.net网页编程来作,结果开发周期,.net网页编程是java的一半,性能java是.net网页编程的十分之一,代码量java是.net网页编程的三倍。呵呵,这说明了什么,.net网页编程的全方位比java好。但是有的人说.net网页编程不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net网页编程很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net网页编程,只是推出了跨语言的.net网页编程, |
|