У меня проблема с модульными тестами в 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());
}
Но это не работает, я думаю, это потому, что он находится в обработчике и новом потоке.
Мой тестовый класс расширяет AndroidTestCase. Что мне делать? Что лучше всего подходит для этого случая?
С уважением.