- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
对于我的大学类(class),我们正在开发一个多线程黑莓应用程序,它允许我们使用蓝牙扫描运行我们应用程序的其他设备,然后通过 Wifi 接口(interface)通过 TCP 相互传输文件,实现 NAT 遍历,同时记录我们的 GPS 位置。 (这是 RIM 赞助的计算机网络类(class),以防这还不明显。)
我越来越喜欢 Test Driven Development并打算用它来制定我的家庭作业。但是,我在测试期间扩展或以其他方式调用的任何 Blackberry 类都会给我一个 ClassFormatError由于非法修饰符。我认为这个错误是因为带有黑莓代码的 jar 必须是专门为他们的专有 JVM 编译的。
到目前为止,我已经使用了 Proxy Pattern并实现Mock Objects的代理。但是,这变得非常乏味,因为我继承了许多本地 Blackberry 类。
如果可能,我还想避免启动黑莓模拟器。启动它可能需要几分钟,这对于单元测试来说是不切实际且烦人的。
是否有简单的方法对我的黑莓代码进行单元测试?
最佳答案
您的模型制作方法正确,但我不建议您在 J2SE 平台上测试 Blackberry 功能。我认为应该使用代理和模型,以防本地源中没有可用的测试数据,例如:
“扫描其他设备” - 没有其他设备但您想测试扫描功能
“通过 Wifi 接口(interface)的 TCP” - 你想在 Storm(无 WiFi)上测试它
“记录我们的 GPS 位置” - 设备位置是静态的,但您想测试其他位置
然后您可以使用黑莓平台模拟这样的功能:
BlackBerry GPS location mockup
您仍然可以使用相同的名称和签名从头开始在 J2SE 上重现 BlackBerry API 类。那将假定您必须自己实现所有类功能。
这将是一个非常好的选择,但到目前为止我还看不出如何做到这一点。
测试涉及应用程序运行,这涉及平台模拟。有可能在不运行整个 UI 模拟器的情况下测试 j2me 代码,但我不知道。
您可以做的是在 Java 标准版上以最少的代码更改测试一些业务逻辑。
您仍然需要在模拟器上运行与平台相关的功能测试,但您可以在一个应用程序中进行,这将是一组单元测试,就像 ChrisW 已经说过的那样。只需将测试方法一一运行并在屏幕上输出结果:
方法 1 - 通过 - 0.03 秒
方法 2 - 通过 - 1.30 秒
Method3 - 通过 - 0.25 s
http://j2meunit.sourceforge.net/ :
J2MEUnit is a Java 2 Micro Edition (J2ME) library containing a unit testing framework for J2ME applications. It is based on the source code of the original JUnit, the successful unit testing framework for the standard (desktop) edition of Java, J2SE.
Unit Testing J2ME applications with J2MEUnit and Eclipse
Quick Tutorial to setup & learn J2MEUnit
http://jmunit.sourceforge.net/ :
JMUnit is a unit test framework for Java ME (J2ME) based on JUnit. It has the following features:
- Works in both the Sun emulator and on actual devices.
- Is small (tests can be run even on old MIDP 1.0 devices).
- Has a comprehensive collection of Assert methods for checking test failures.
- Both TestCases and TestSuites are supported.
- Includes Ant tasks for running JMUnit tests in a continuous build.
- Has performance monitoring classes inspired by JUnitPerf.
Writing and running JMUnit tests
Unit Testing library for RIM Blackberry based on jmunit
http://sourceforge.net/projects/b-unittesting/
BlackBerry Support Community Forums: How to do unit testing my Blackberry Application
关于java - 如何轻松对黑莓代码进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1020656/
我想创建后台应用程序,它将监听哪些应用程序已启动以及哪些应用程序移至前台。 请回复 如果问题不清楚会再次解释。 谢谢 最佳答案 这是你可以做的: 使用 ApplicationManager.getFo
下午好。 我开始用 java 和 blackberry 编程。 我正在开发一个带有三个窗口的应用程序,我将显示有关设备的基本信息,这些窗口已经完成并可以工作。 我需要创建一个在后台运行的进程,这个进程
如何翻转 Bitmap上下翻转? (我需要这个来在另一个程序中加载 OpenGL 纹理)。 这是我失败的尝试: stripe.png(由 Pitr@OpenClipart 提供): 翻转.java:
从 Internet 上可用于签署 BB 应用程序的内容来看,我可以猜测我们只需要用于签署应用程序的 .cod 文件,而不需要源代码。 有人可以确认这一点吗? 最佳答案 编译代码时会自动生成 .cod
我想访问闹钟。在我的应用程序中,我已成功访问日历并设置了约会,但我如何访问闹钟。请帮我。以下是我的代码 public class Alarm { private Event event;
作为应用程序的一部分,我们将在设备上的“file:///store/home/user/”位置创建一个文件 myApp.cfg。设备上的加密已启用。因此,myApp.cfg 被重命名为 myApp.c
我需要制作一个包含可点击号码的标签,这样当用户点击标签时,就会调用电话号码(或向用户显示调用电话的选项)。当我现在点击标签时,我只得到一个工具提示类型的菜单,其中包含复制数字的选项... privat
我有兴趣在我的 BlackBerry 应用程序中添加一个可拖动的 slider 。 我想知道 BlackBerry API 中是否有类似的东西,或者是否有人做过类似的东西! 最佳答案 有一个Gauge
最初开发黑莓应用的时候,并没有太在意能够支持多种屏幕分辨率。所以,我最终得到了在 320*240 分辨率下运行良好但在其他屏幕上完全困惑的代码。 我该如何解决这个问题?或者一般来说,如果不为每个资源构
我创建了一个这样的静态函数。 public static Bitmap Bitmap(String path) { Bitmap bitmap = Bitmap .ge
我需要 BlackBerry 本地化方面的帮助。我在 http://na.blackberry.com/eng/developers/resources/developer_labs.jsp#tab_
我创建了一个 RichTextField 我想让它只允许整数值。我怎样才能做到这一点? 最佳答案 你可以尝试这样的事情: public class MyRichTextField extends Ri
在 BlackBerry 平台中,我想知道是否可以/如何执行以下操作: 检索通话记录(我对来电记录特别感兴趣); 删除特定的通话记录; 最佳答案 要检索电话日志,请查看 PhoneCallLog cl
我想知道我们是否可以调整图像大小。假设我们要在黑莓屏幕上绘制一个实际尺寸为200x200且尺寸为100 x 100的图像。 谢谢 最佳答案 只是一种选择: BlackBerry - draw imag
黑莓 JDE 不包括 java.util.ArrayList ,即使它知道 java.util ?那是怎么回事? BB 有对应的类(class)吗?我不想使用数组,真的,因为我要处理的对象数量未知。为
我想使用 graphics.drawLine 方法在 drawListRow 中的黑莓 Listfield 中添加一个分隔符,但下面根本没有绘制线是我正在使用的来源 drawListRow(ListF
我正在为Blackberry设备开发一个应用程序。这个程序包含一个数据库。由于该API是在最新的API版本上提供的,因此我决定使用SQLite。 我遵循了随处都可以找到的所有示例,但是无论发生什么情况
我已将 Blackberry 4.6.0 应用程序移植到 4.7.0 上的 Storm。除了我试图控制的触摸事件之外,一切都运行良好。我在下面的方法中捕获触摸事件,它按预期执行,但问题是在我的 tou
我正在为 BB 开发一个项目。该应用程序与网络一起工作,并通过 HTTP 发送/接收数据。现在我使用队列和队列管理器。管理器从一个后台线程开始,并在 while (true) 循环中工作,检查队列中是
我想在黑莓中合并两个图像。一张图像是大图像,另一张图像是小图像。小图像的位置将由开发人员定义。有哪些可能的方法? 最佳答案 您可以使用 Graphics 类以不同的偏移量在其上绘制多个位图。查看Gra
我是一名优秀的程序员,十分优秀!