注意,这段代码中使用了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) |