请教j2me里的单元测试问题
在网上找了几天关于junit在j2me里的运用,也尝试了j2meunit,但始终不得要领。
请有这方面经验的朋友能介绍介绍心得吗?
问题点数:20、回复次数:7Top
1 楼ransion(西方失败)回复于 2005-04-01 12:16:27 得分 0
推荐这本书junit in actionTop
2 楼cuilichen(fjfjfjfj)回复于 2005-04-01 12:26:25 得分 0
一般来说单元测试是软件工程中的重要步骤。
但是,由于J2ME程序的规模有限,所以,这里的单元测试一般是程序员本人进行的,比如写完一个模块,进行一下测试。
这种测试的程度,一般可以满足J2ME的要求。
之后,整个软件的测试需要针对不同的机型进行。Top
3 楼zoof(祝福)回复于 2005-04-01 14:00:38 得分 0
能不能给点单元测试的实际例子或者文章参考?Top
4 楼wywwolf(wolf)回复于 2005-04-01 14:44:22 得分 20
恩,我倒是写了个练手的测试,贴给你看咯
package wywsoft.test;
import j2meunit.framework.*;
import wywsoft.point24.FourNumber;
public class TestFourNumber extends TestCase{
private FourNumber f = null;
public TestFourNumber() {
}
public TestFourNumber(String name) {
super(name);
}
public TestFourNumber(String sTestName, TestMethod rTestMethod) {
super(sTestName, rTestMethod);
}
public Test suite() {
TestSuite aSuite = new TestSuite();
aSuite.addTest(new TestFourNumber("testGetFourNumber", new TestMethod() {
public void run(TestCase tc) {( (TestFourNumber) tc).testGetFourNumber(); } }));
return aSuite;
}
public void setUp() {
f = new FourNumber();
}
public void testGetFourNumber() {
assertTrue("first", f.getFirst() <= 13 && f.getFirst() > 0 );
assertTrue("second", f.getSecond() <= 13 && f.getSecond() > 0 );
assertTrue("third", f.getThird() <= 13 && f.getThird() > 0 );
assertTrue("fourth", f.getFourth() <= 13 && f.getFourth() > 0 );
}
}
Top
5 楼wywwolf(wolf)回复于 2005-04-01 14:45:26 得分 0
package wywsoft.test;
import j2meunit.framework.*;
public class TestAll extends TestCase{
public TestAll() {
}
public TestAll(String name) {
super(name);
}
public static void main(String[] args) {
String[] runnerArgs = new String[] {
"wywsoft.test.TestAll"};
j2meunit.textui.TestRunner.main(runnerArgs);
}
public Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new TestNumeric().suite());
suite.addTest(new TestFourNumber().suite());
return suite;
}
}
Top
6 楼wywwolf(wolf)回复于 2005-04-01 14:52:11 得分 0
package wywsoft.test.midp;
import j2meunit.midletui.TestRunner;
public class TestMidlet extends TestRunner {
public TestMidlet() {
}
protected void startApp() {
start(new String[] { "wywsoft.test.TestAll" });
}
}
-----------------------------------------
j2meunit里面有个小例子的,你也可以看那个例子,如果会JUNIT的话,应该不会有什么问题的啦。
J2MEUNIT是从JUNIT扩展来的。JUNIT是利用反射来工作的,由于J2ME不支持反射机制,所以在J2ME下JUNIT就不适用了。Top
7 楼zoof(祝福)回复于 2005-04-02 09:07:43 得分 0
可能还存在一个观念上的理解问题,我对J2MEUNIT的这种单元测试方式还是不能理解。
比如,下面这个例子,我要对其中一个方法,如:startApp()测试,该怎么做呢?
能否具体的指导指导?谢了.
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDlet extends MIDlet implements CommandListener {
private Command exitCommand;
private Display display;
public HelloMIDlet() {
display = Display.getDisplay(this);
exitCommand = new Command("Exit", Command.SCREEN, 2);
}
public void startApp() {
TextBox t = new TextBox("Hello MIDlet", "Hello World", 256, 0);
t.addCommand(exitCommand);
t.setCommandListener(this);
display.setCurrent(t);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
}
Top




