AndroidX Testi, AndroidJUnitRunner'ı açın. JUnit kuralları daha fazla esneklik sağlar ve testlerde gereken ortak metin kodu. Örneğin, bir ekip üyesiyle aynı anda bir belirli bir aktiviteye dokunun.
EtkinlikSenaryosuKural
Bu kural, tek bir etkinliğin işlevsel testini sağlar. Kural başlatılır
seçilen etkinlik her testten önce ve @Test
ile ek açıklama olarak verilir.
@Before
ile başlayan herhangi bir yöntem. Kural, şu tarihten sonra etkinliği sonlandırır:
test tamamlandı ve @After
ile açıklama eklenen tüm yöntemler tamamlanır. Verilen
etkinliği olması için, Search Console'da çalıştırılabilir bir
ActivityScenarioRule.getScenario().onActivity()
Aşağıdaki kod snippet'i
Test mantığınıza ActivityScenarioRule
ekleyin:
Kotlin
@RunWith(AndroidJUnit4::class.java) @LargeTest class MyClassTest { @get:Rule val activityRule = ActivityScenarioRule(MyClass::class.java) @Test fun myClassMethod_ReturnsTrue() { activityRule.scenario.onActivity { … } // Optionally, access the activity. } }
Java
public class MyClassTest { @Rule public ActivityScenarioRule<MyClass> activityRule = new ActivityScenarioRule(MyClass.class); @Test public void myClassMethod_ReturnsTrue() { ... } }
Hizmet Test Kuralı
Bu kural,
ve öncesinde ya da sonrasında kapatmaktır. Hizmeti şununla başlatabilir veya bağlayabilirsiniz:
diğer yöntemlerden biridir. Testten sonra otomatik olarak durur veya bağlantısı kesilir
tamamlandı. @After
ile ek açıklama eklenen tüm yöntemler tamamlandı.
Kotlin
@RunWith(AndroidJUnit4::class.java) @MediumTest class MyServiceTest { @get:Rule val serviceRule = ServiceTestRule() @Test fun testWithStartedService() { serviceRule.startService( Intent(ApplicationProvider.getApplicationContext<Context>(), MyService::class.java)) // Add your test code here. } @Test fun testWithBoundService() { val binder = serviceRule.bindService( Intent(ApplicationProvider.getApplicationContext(), MyService::class.java)) val service = (binder as MyService.LocalBinder).service assertThat(service.doSomethingToReturnTrue()).isTrue() } }
Java
@RunWith(AndroidJUnit4.class) @MediumTest public class MyServiceTest { @Rule public final ServiceTestRule serviceRule = new ServiceTestRule(); @Test public void testWithStartedService() { serviceRule.startService( new Intent(ApplicationProvider.getApplicationContext(), MyService.class)); // Add your test code here. } @Test public void testWithBoundService() { IBinder binder = serviceRule.bindService( new Intent(ApplicationProvider.getApplicationContext(), MyService.class)); MyService service = ((MyService.LocalBinder) binder).getService(); assertThat(service.doSomethingToReturnTrue()).isTrue(); } }
Ek kaynaklar
Android testlerinde JUnit kurallarını kullanma hakkında daha fazla bilgi için şu sayfaya bakın: inceleyebilirsiniz.
Belgeler
- Parçaları ayrı olarak test etmek için parçalarınızı test etme rehberini inceleyin.
- Compose ile oluşturulan kullanıcı arayüzlerini test etmek için Compose düzeninizi test etme.
Örnekler
- BasicSample:
ActivityScenarioRule
basit kullanımı.