【发布时间】:2011-10-10 16:42:28
【问题描述】:
我对 Android 中的单元测试有疑问。
我的对象 MyObject 有一个方法 start() 像这样:
public void start() {
final Handler onStartHandler = new Handler();
new Thread() {
@Override
public void run() {
super.run();
onStartHandler.post(new Runnable() {
@Override
public void run() {
mIsRunning = true;
onStart();
}
});
}
}.start();
}
我想测试是否调用了 onStart()。 所以我尝试了类似的方法:
public void testOnStartIsCalled() {
assertFalse("onStart() should not be called", mMyObject.isRunning());
mMyObject.start();
assertTrue("onStart() should be called", mMyObject.isRunning());
mMyObject.stop();
assertFalse("onStop() should be called", mMyObject.isRunning());
}
但它不起作用,我猜是因为它在一个Handler和一个新线程中。
我的测试类扩展了 AndroidTestCase。 我该怎么办 ?这种情况下的最佳做法是什么?
问候。
【问题讨论】:
标签: android multithreading unit-testing handler