ServiceTestCase<T>.getService?
Я пытаюсь построить действительный пакет тестирования Junit на Android.
Так как я новичок в Junit, я не могу понять, как использовать класс ServiceTestCase.
Я не могу понять, как заставить метод getService() работать. это всегда возвращает меня к нулю. Поэтому я решил запустить его через startService. Это не работает.
Не могли бы вы мне помочь?
Спасибо
2 ответа
Это то, что вам нужно, чтобы проверить свой сервис
public class MyServiceTests extends ServiceTestCase<MyService> {
private static final String TAG = "MyServiceTests";
public MyServiceTests() {
super(MyService.class);
}
/**
* Test basic startup/shutdown of Service
*/
@SmallTest
public void testStartable() {
Intent startIntent = new Intent();
startIntent.setClass(getContext(), MyService.class);
startService(startIntent);
assertNotNull(getService());
}
/**
* Test binding to service
*/
@MediumTest
public void testBindable() {
Intent startIntent = new Intent();
startIntent.setClass(getContext(), MyService.class);
IBinder service = bindService(startIntent);
assertNotNull(service);
}
}
Я написал несколько статей о тестировании Android и разработке через тестирование, которые могут оказаться полезными, проверьте http://dtmilano.blogspot.com/search/label/test%20driven%20development.
Принятый ответ больше не работает.
Тестовые случаи, такие как ActivityInstrumentationTestCase2 или ServiceTestCase, не рекомендуются в пользу ActivityTestRule или ServiceTestRule.
Кажется, они забыли обновить актуальную документацию.