快速业务通道

Java ME下的单元测试开发之JMUnit篇 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
cted,actual) assertNull(object) assertNotNull(object)

在JMUnit中,任何使用这些断言调用之一的测试方法都必须抛出一个AssertionFailedException异常。框架使用该异常来标识失败的测试。现在,这个添加了适当测试方法的TemperatureConversionTest类看起来如下所示。

import jmunit.framework.cldc11.*; public class TemperatureConversionTest extends TestCase {  public void testfahrenheitToCelsius() throws AssertionFailedException{   System.out.println("fahrenheitToCelsius");   float result = TemperatureConversion.fahrenheitToCelsius(66F);   assertEquals(18.88889F,result);  }  public void testcelsiusToFahrenheit() throws AssertionFailedException{   System.out.println("celsiusToFahrenheit");   float result = TemperatureConversion.celsiusToFahrenheit(20F);   assertEquals(68F, result);  }  public void testisHotter() throws AssertionFailedException {   System.out.println("isHotter");   assertTrue(TemperatureConversion.isHotter(70F,2F));  }  public void testisCooler() throws AssertionFailedException {   System.out.println("isCooler");   assertTrue(TemperatureConversion.isCooler(10F,10F));  } }

Java ME下的单元测试开发之JMUnit篇(3)

时间:2010-05-21 天极 朱先忠

对于每一个标准的JUnit实现,JMUnit测试用例抽象类都提供了setup()和tearDown()方法,这两个方法都能够被重载并用于初始化,并在经由测试用例运行测试前后用来清除任何对象或资源。例如,在Java ME应用程序中,setup()可以用于在测试前打开一个记录存储,而tearDown()用于在测试后关闭记录存储。除了setup和tearDown方法外,还有一个fail()方法用于实现-无论assert语句显示什么内容,都允许一个测试方法返回一个测试失败。这个方法经常用于一个测试方法内的某些条件中,或用于作为未开发的单元测试的一个代理,从而作为一种方式来指示尚待完成的工作。

JMUnit中的每一个测试用例类都有一个相应的构造器。因此,派生自JMUnit的测试用例类的构造器必须调用超类构造器,并传入一个整数以指示在该测试用例中的测试个数,还要传入一个字符串来标识该测试用例。

public TemperatureConversionTest() {  super(4,"TemperatureConversionTest"); }

这个整数指示测试的个数必须匹配测试用例中的实际测试的数目。确保你传入构造器的测试的个数匹配测试用例中的实际的测试的个数是相当重要的。当你分析该测试用例的test(int testNumber)方法,就会看到它们之间的关系。

测试用例中的这个test(int testNumber)方法负责"剔除"测试方法。因为Java ME缺乏映射能力,所以不能象在JUnit中一样,找到test方法并自动地执行之。因此,每一个测试方法必须被添加到该test方法中的一个switch语句中,并且基于一个测试号进行相应的调用。在我们的TemperatureConversionTest情况下,这个test方法看起来如下列代码所示:

public void test(int testNumber) throws Throwable {  switch(testNumber) {   case 0:testfahrenheitToCelsius();break;   case 1:testcelsiusToFahrenheit();break;   case 2:testisHotter();break;   case 3:testisCooler();break;   default: break;  } }

这也正解释了为什么你必须向测试用例构造器提供一个测试号。在运行时刻,JMUnit框架创建一个测试用例类的实例。然后,框架在一个循环内调用该测试用例实例的每一个测试方法。通过这种方式,测试方法的switch

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号