Java ME下开发之JMUnit篇

发表于:2011-1-06 10:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:朱先忠 编译    来源:51Testing软件测试网采编

  注意,这段代码中使用了CLDC 1.1原始的浮点原型。为了使该代码能够运行于CLDC 1.0环境下,该代码需要使用整数原型来取代浮点原型,如下所示。另外,本文提供的下载zip源文件中也提供了一个针对CLDC 1.1和CLDC1.0的所有的这些代码和测试类的副本。

public class DistanceConversion {
 public static int feetToMeters(int ft){
return (ft * 3048)/10000;
 }
 public static int metersToFeet(int meters){
return (meters*3281)/1000;
 }
 public static int milesToKM(int miles){
return (miles*1609)/1000;
 }
 public static int kmToMiles(int km){
return (km*6214)/10000;
 }
}
public class TemperatureConversion {
 public static int fahrenheitToCelsius (int degrees){
return ((degrees-32)/9)*5;
 }
 public static int celsiusToFahrenheit (int degrees){
return ((degrees * 9)/5)+32;
 }
 public static boolean isHotter (int degFaren, int degCel){
return ((fahrenheitToCelsius(degFaren))-degCel) > 0;
 }
 public static boolean isCooler (int degFaren, int degCel){
return ((fahrenheitToCelsius(degFaren))-degCel) < 0;
 }
}

  四、使用JMUnit

  a) 建立JMUnit

  在下载JMUnit后,请确保相应的两个JMUnit .jar文件(JMUnit4CLDC10.jar和JMUnit4CLDC11.jar)可用于classpath中。注意,这个参数既针对你的Java ME编译器也针对运行时刻环境或IDE。当前,JMUnit的发行版本是1.0.2。

  b) JMUnit测试用例

  JMUnit提供了两个版本的框架(每个版本都位于各自的JAR内);一个用于CLDC 1.0应用程序,另一个用于CLDC 1.1应用程序(其中,支持浮点原型)。按照典型的JUnit惯例,使用JMUnit创建适当的单元测试的第一步是创建一个测试用例。为了在JMUnit中创建一个测试用例,你必须创建一个新的派生自JMUnit的jmunit.framework.cldc10.TestCase或jmunit.framework.cldc11.TestCase的测试用例类。正如其包名所暗示的,一个支持1.0版本的CLDC,另一个支持1.1版本的CLDC。唯一的区别是,在assertEquals()和assertNotEquals()方法(见下面)的cldc11.TestCase实现中支持Java浮点原型。

  按照JUnit习惯,一个测试用例类应该包含要测试的类名,并且以"Test"结束。因此,一个测试上面这个温度转换类的简单的CLDC 1.1版本的JMUnit测试用例可以按如下方式定义:

public class TemperatureConversionTest extends jmunit.framework.cldc11.TestCase {}

  所有的测试方法必须位于一个测试用例类之内。而且,按照惯例,测试方法名都以"test"开头,然后根据被测试的类中的方法进行命名。例如,一个测试fahrenheitToCelsius方法的测试用例方法应该为testfahrenheitToCelsius。每一个测试方法必须"断言"期望的结果。对于那些不熟悉JUnit测试的开发者来说,一个断言其实就是一个语句,它负责验证或证明从某个方法执行中程序员所期望的结果。JMUnit支持下列断言:

assertTrue(expression)
assertFalse(expression)
assertSame(expected,actual)
assertNotSame(expected,actual)
assertEquals(expected,actual)
assertNotEquals(expected,actual)
assertNull(object)
assertNotNull(object)

42/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号