ServiceTestCase <T>.getService? - PullRequest
       26

ServiceTestCase <T>.getService?

5 голосов
/ 20 февраля 2010

Я пытаюсь создать действительный пакет тестирования Junit на Android.

Поскольку я новичок в Junit, я не могу понять, как использовать класс ServiceTestCase.

Я не могу понять, как заставить работать метод getService (). это всегда возвращает меня к нулю. Поэтому я решил запустить его через startService. Это не работает.

Не могли бы вы мне помочь?

Спасибо

Ответы [ 2 ]

16 голосов
/ 20 февраля 2010

Это то, что вам нужно для проверки вашего сервиса

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.

0 голосов
/ 04 июня 2016

Принятый ответ больше не работает.

Тестовые случаи, такие как ActivityInstrumentationTestCase2 или ServiceTestCase, не рекомендуется в пользу ActivityTestRule или ServiceTestRule.

ATSL ссылка

Кажется, они забыли обновить актуальную документацию.

...