2010-02-19 21 views
5

Android'de geçerli bir deneme test takımı kurmaya çalışıyorum.ServiceTestCase <T> .getService?

Junit'ten yeni olduğum için ServiceTestCase sınıfını nasıl kullanacağımı anlayamıyorum.

getService() yönteminin nasıl çalıştığını anlayamıyorum. o asla bana null döndürür. Bu yüzden startService ile başlatmaya karar verdim. İşe yaramıyor.

Lütfen bana yardım eder misiniz? Bu sana yararlı olabilecek Android ve test güdümlü gelişimi hakkında bazı makaleler yazdım

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); 
} 
} 

servis test etmek gerekenler

Teşekkür

+1

Birisi sorunuza cevap verirse, onların yanıtlarının yanındaki onay işaretini tıklatmanız alışılmış bir durumdur. Bunu yapmak, daha iyi cevapları daha hızlı almanıza yardımcı olacaktır. –

cevap

16
+0

Çok teşekkür ederim. –

+0

Harika cevap hala @dtmilano. Android testindeki çalışmanız oldukça ilginç. – Snicolas

+0

Hizmetinizi test etmeden önce uygulamanızı (hizmeti başlatan) gerçekten çalıştırmanız gerekiyor mu? Hizmet sınamasını bağımsız olarak çalıştırmak istiyorum, ancak startIntent değişkeni için bir NullPointerException olsun. –

0

Kabul edilen cevap artık işe yaramıyor. ActivityInstrumentationTestCase2 veya ServiceTestCase gibi

testcases ActivityTestRule veya ServiceTestRule lehine kaldırılmıştır.

ATSL link

Onlar gerçek belgeleri güncelleştirmek unuttum görünüyor.

İlgili konular