iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何理解J2ME单元测试理念
  • 865
分享到

如何理解J2ME单元测试理念

2024-04-02 19:04:59 865人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关如何理解J2ME单元测试理念,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。J2ME Unit是由KentBeck和ErichGamma设

这期内容当中小编将会给大家带来有关如何理解J2ME单元测试理念,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

J2ME Unit是由KentBeck和ErichGamma设计开发的在J2ME平台上模仿JUnit的单元测试框架,大小17KB。它的运用为编写有保证的J2ME程序代码提供了基础性的支持。

J2ME单元测试(JUnit)

J2ME Unit简介:

利用JUnit等单元测试框架进行单元测试对于Java程序员并不陌生,利用这些非常有效的工具,使得代码的质量得到有效的监控和维护。然而似乎一切在J2ME的平台上,都显得略有些不同。由于J2ME环境不能提供反射(Reflection)api,因此很多基于反射的功能都无法使用,例如JUnit中自动创建并运行testsuite的功能。广大的J2ME程序员不能在J2ME平台上使用JUNIT进行单元测试,但谁都知道没有单元测试的程序是多么的脆弱!

J2ME Unit是由KentBeck和ErichGamma设计开发的在J2ME平台上模仿JUnit的单元测试框架,大小17KB。它的运用为编写有保证的J2ME程序代码提供了基础性的支持。J2MEUnit引入了一些新的机制来解决原有JUnit对反射的依赖。可能在使用中J2MEUnit明显的没有JUnit方便,但现阶段我们也只能利用它了,热烈的期盼着J2ME环境对反射的支持。现有的J2MEUnit的版本是1.1.1。如同JUnit一样,它也是开源的。你可以在sf.net上找到他的下载。相比较JUnit经常升级,J2MEUnit有一段时间没有升级了,一方面投入的力量较小,另外可能是考虑到J2ME环境的特殊性,要保证测试的LIB足够的小。

搭建测试平台:

我们以Eclipse配合EclipseME为例子说明如何使用J2MEUnit。

首先到sf下载J2MEUnit的***版本:Http://J2MEUnit.sourceforge.net,并解压缩到你的常用目录中。

新建一个MidletSuite,选择Project…>properties…>JavaBuildPath…>Libraries…>AddExternaljars…选择你需好下载的路径中的J2MEUnit.jar。 
 
这样就可以使用了。

编写测试类:

让我们编写一个TestCase来学习如何使用这套工具。

编写TestCase类

编写测试的类要继承J2MEUnit.framework.TestCase。如同JUnit中一样,你可以覆写setUp()和tearDown()方法,虽然这里没有反射机制,但还是推荐你把测试方法以test开头。这样一但J2ME有了反射机制,你也可以快速的移植。还有一点要注意的是,你需要为子类提供一个构造函数(假设你的类叫做TestOne): 

publicTestOne(StringsTestName,TestMethodrTestMethod)  {  super(sTestName,rTestMethod);  }

稍候解释这是为什么?

接下来编写两个个测试方法,这很熟悉:

publicvoidtestOne()  {  System.out.println("TestOne.testOne()");  assertTrue("Shouldbetrue",false);  }  publicvoidtestTwo()  {  System.out.println("TestOne.testTwo()");  thrownewRuntimeException("Exception");  }

正是缺少反射机制,你需要手动编写suite方法,并一一调用你编写的测试方法,这个步骤多多少少有些烦闷。没办法了,这是理解J2MEUnit框架的关键了,咱连writeoncedebuganywhere都忍了,还有什么困难不能克服呢?

suite方法要求我们返回一个TestSuite对象,因此,首先建立一个新的TestSuite对象并调用addTest方法,为他添加Test对象。Test是一个接口,TestSuite、TestCase都实现了他,因此既可以添加测试单元、又可以添加一个测试套件。

根据J2MEUnit的设计思想,一个TestCase在运行时,只能捆绑一个TestMethod对象。TestMethod是一个标准的回调接口,只含有一个回调run(TestCasetc)方法。这个run方法的任务是调用一个,注意,是一个测试方法,那么一旦这个方法出现问题,可以很好的捕捉它,并返回给用户。TestMethod提供了一组set方法用于捆绑一个TestMethod对象,但实际我们不去使用它,因为效率太低了,为了更快捷的捆绑TestMethod对象,我们要利用构造函数和匿名类来捆绑TestMethod类的实例。这个匿名类很好编写,只要将传入的TestCasetc向上转型到你的TestCase子类,然后调用相关方法就可。我们不得不同时提供一个String作为名称给我们的构造函数

看一下下面这个例子,希望能帮助你理解上面那段总觉得有些拗口的话。如果你理解了“一个TestCase在运行时,只能捆绑一个TestMethod对象”这句话,那么就理解了J2MEUnit所谓的新机制。千万不要在一个TestMethod中连续调用多个test方法,这样一旦某个方法出了问题,那么整个方法会结束而后续的测试将不能执行。一定要老老实实做人,认认真真写suite(),似乎又回到了剪刀加浆糊的时代。

publicTestsuite()  {  TestSuiteaSuite=newTestSuite();  aSuite.addTest(newTestOne("testOne",newTestMethod()  {publicvoidrun(TestCasetc){((TestOne)tc).testOne();  }}));  aSuite.addTest(newTestOne("testTwo",newTestMethod()  {publicvoidrun(TestCasetc){((TestOne)tc).testTwo();  }}));  returnaSuite;  }

编写测试套件

接下来编写一个测试套件,其实你可能已经明白了,测试套件不过是一个特殊的TestCase,根据惯例,一般这样的类叫做TestAll,只需要将以前添加的TestCase中的suite添加给TestAll的suite就可以了。

publicclassTestAllextendsTestCase{  publicTestsuite()  { TestSuitesuite=newTestSuite();  suite.addTest(newTestOne().suite());  suite.addTest(newTestTwo().suite());  returnsuite;  }}

调试:

有两个方法运行我们的测试。

使用textui

利用textui,这个大家都熟悉了,不做重点介绍。一般习惯上在TestAll方法中添加一个main方法:

  publicstaticvoidmain(String[]args)  {  String[]runnerArgs=newString[]{"J2MEUnit.examples.TestAll"};  J2MEUnit.textui.TestRunner.main(runnerArgs);  }

要为TestRunner.main传入一个String数组,里面罗列所有要测试的TestCase的完整路径,因为我们编写了TestAll,所以只传入他就可以了。

使用midletui

这才是这套框架迷人的地方,正是有了他我们可以在真机上进行UnitTest了,cool,这将节省多少的测试成本呀。所以之前所有的编写suite的工作就认了!

继承J2MEUnit.midletui.TestRunner,这是一个midlet父类。在startApp中调用如下方法:

protectedvoidstartApp()  {  start(newString[]{"J2MEUnit.examples.TestAll"});  }

或者,更为灵活的,你可以在jad文件中编写一个J2MEUnitTestClasses属性,写入你要测试的若干个TestCase,这样也可以进行测试而不更改主类。

如下是在模拟上的结果:

  screen.width-460)this.width=screen.width-460">

在我的MIDP1.0,真机上运行这个例子得到同样的结果,用时401ms。如果你正在使用j2me开发项目,建议把单元测试引入到你的工作当中,正如我们看到单元测试对于别的java平台的影响一样,对于嵌入式开发,它也是大有用武之地的。

上述就是小编为大家分享的如何理解J2ME单元测试理念了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: 如何理解J2ME单元测试理念

本文链接: https://www.lsjlt.com/news/87114.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解J2ME单元测试理念
    这期内容当中小编将会给大家带来有关如何理解J2ME单元测试理念,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。J2ME Unit是由KentBeck和ErichGamma设...
    99+
    2022-10-19
  • 如何理解J2ME PIM的概念
    这篇文章将为大家详细讲解有关如何理解J2ME PIM的概念,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。这里和大家分享一下J2ME PIM的概念,根据JSR...
    99+
    2022-10-19
  • Android单元测试的整理
      本人近实践,个人比较喜欢采用JUit+Mock+Espresso,所以也展示了这三个。本来想分篇的,后还是压缩了一下一篇吧。   文中代码大部分是以前摘录的,比较零散...
    99+
    2022-06-06
    android单元测试 测试 Android
  • 如何为maven单元测试设置代理
    这篇文章将为大家详细讲解有关如何为maven单元测试设置代理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。背景环境需要设置代理才能够访问外部网络,如果只是运行java程序来访问网络,我们可以...
    99+
    2023-05-31
    maven mave
  • 如何处理PHP开发中的单元测试和自动化测试
    随着软件开发行业的日益发展,单元测试和自动化测试成为了开发者们重视的环节。PHP作为一种广泛应用于Web开发的脚本语言,单元测试和自动化测试同样也在PHP开发中扮演着重要的角色。本文将介绍如何处理PHP开发中的单元测试和自动化测试,并提供一...
    99+
    2023-10-21
    自动化测试 单元测试 PHP开发
  • 如何理解Angular单元测试中事件触发的实现
    如何理解Angular单元测试中事件触发的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。导读这篇文章主要介绍了Angular单元测试之事件触发的实现,文中通...
    99+
    2023-06-04
  • eclipse单元测试如何弄
    Eclipse提供了一些工具和插件来帮助进行单元测试。以下是在Eclipse中进行单元测试的一般步骤:1. 创建测试类:在Eclip...
    99+
    2023-08-17
    eclipse
  • 深入理解Python单元测试unittest的使用示例
    软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施。正像软件熵(software entro...
    99+
    2022-06-04
    示例 单元测试 Python
  • 如何进行C++单元测试?
    如何进行C++单元测试?C++是一种广泛使用的编程语言,常用于开发各种类型的应用程序。为了确保代码的质量和可靠性,进行单元测试是非常重要的。本文将介绍如何进行C++单元测试,以帮助开发人员更好地掌握这一技能。学习并选择合适的测试框架在进行C...
    99+
    2023-11-02
    测试框架 断言 C++ 单元测试
  • android单元测试如何配置
    要配置Android单元测试,您可以按照以下步骤进行操作:1. 在您的Android项目中,打开`build.gradle`文件。2...
    99+
    2023-09-26
    android
  • SpringBoot单元测试如何实现
    这篇文章将为大家详细讲解有关SpringBoot单元测试如何实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。demo(SpringBoot 项目)被测试类:import org.springf...
    99+
    2023-06-25
  • Android如何进行单元测试
      Menifest.xml中加入: <application>中加入: <uses-library android:name="andro...
    99+
    2022-06-06
    单元 单元测试 测试 Android
  • 如何理解MySQL Profile在MySQL5.7的简单测试
    本篇文章给大家分享的是有关如何理解MySQL Profile在MySQL5.7的简单测试,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 ...
    99+
    2022-10-19
  • 如何理解J2ME体系结构
    今天就跟大家聊聊有关如何理解J2ME体系结构,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。你对J2ME体系结构是否了解,这里和大家分享一下,J2ME...
    99+
    2022-10-19
  • 一文详解Go语言单元测试的原理与使用
    目录前言为什么要引用单元测试类单元测试基本介绍优点Testing规范基本使用Golang运行命令行案例前言 为什么要引用单元测试类 传统方法的缺点分析 不方便,我们需要在main函数...
    99+
    2022-11-11
  • 如何进行PHP的单元测试?
    随着软件开发的不断发展,测试已经成为开发过程中不可或缺的一部分。在进行测试时,单元测试是非常重要的一种测试方式。在 PHP 中,使用单元测试可以有效地减少代码中存在的错误,提高代码质量。本文将向你介绍如何进行 PHP 的单元测试。一、什么是...
    99+
    2023-05-14
    PHP 单元测试 测试覆盖率
  • phpstrom如何配置webman单元测试
    这篇文章主要介绍“phpstrom如何配置webman单元测试”,在日常操作中,相信很多人在phpstrom如何配置webman单元测试问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”phpstrom如何配置w...
    99+
    2023-06-22
  • 详解如何用JavaScript编写一个单元测试
    目录为什么要进行单元测试?范围界定和编写单元测试保持单元测试简短而简单考虑正面和负面的测试用例分解长而复杂的函数避免网络和数据库连接如何编写单元测试创建一个新项目实现一个类配置和添加...
    99+
    2022-11-13
    JavaScript编写单元测试 JavaScript单元测试
  • 如何理解J2ME的Web服务API
    这篇文章将为大家详细讲解有关如何理解J2ME的Web服务API,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。你对J2ME的Web服务API是否了解,这里和大...
    99+
    2022-10-19
  • python单元测试之如何使用pytest
    这篇文章主要介绍python单元测试之如何使用pytest,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、前提准备前提:需要安装pytest和pytest-html(生成html测试报告)pip install p...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作