Çoklu Uygulama için UI

Android, birden fazla uygulamayı içeren kullanıcı arayüzü testini destekler. Uygulamamızın uygulamamızdan mesajlaşma uygulamasına geçip bir mesaj gönderme seçeneği olduğunu ve ardından uygulamamıza geri döndüğünü düşünelim. Bu senaryoda, UI automator test çerçevesi , uygulamayı test etmemize yardımcı olur. UI automator , espresso test çerçevesi için iyi bir yardımcı olarak düşünülebilir. UI automator'ı seçmeden önce espresso test çerçevesinde intending () seçeneğini kullanabiliriz .

Kurulum Talimatı

Android, ayrı bir eklenti olarak UI automator sağlar. App / build.gradle'da aşağıda belirtildiği gibi yapılandırılması gerekir ,

dependencies {
   ...
   androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
}

Test Vakası Yazma İş Akışı

UI Automator tabanlı bir test senaryosunun nasıl yazılacağını anlayalım ,

  • GetInstance () yöntemini çağırarak ve Instrumentation nesnesini ileterek UiDevice nesnesini alın .

myDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
myDevice.pressHome();
  • FindObject () yöntemini kullanarak UiObject nesnesini alın . Bu yöntemi kullanmadan önce , hedef uygulamayı anlamak daha iyi test senaryoları yazmamızı sağladığından , hedef uygulama UI bileşenlerini incelemek için uiautomatorviewer uygulamasını açabiliriz .

UiObject button = myDevice.findObject(new UiSelector()
   .text("Run")
   .className("android.widget.Button"));
  • UiObject yöntemini çağırarak kullanıcı etkileşimini simüle edin . Örneğin, bir metin alanını düzenlemek için setText () ve bir düğmenin tıklama olayını ateşlemek için () tıklayın.

if(button.exists() && button.isEnabled()) {
   button.click();
}
  • Son olarak, kullanıcı arayüzünün beklenen durumu yansıtıp yansıtmadığını kontrol ediyoruz.