Android Kullanıcı Arayüzü Testi Artık Daha Kolay: Espresso vs Barista

Meva Akkaya
Huawei Developers - Türkiye
3 min readDec 9, 2022

Daha önce Espresso kullanmış olabilirsiniz, peki ya Barista?

Barista: The one who serves a great Espresso

Merhaba, bu yazımda Android Espresso’dan daha sadeleştirilmiş bir kütüphaneden bahsedeceğimi söylesem ne dersiniz? Hadi göz atalım!

Başlarken

Android UI testi, uygulamanın kullanıcı arayüzünün düzgün ve beklendiği gibi çalıştığını doğrular. Bu, kullanıcı deneyimini iyileştirmeye, hataları yakalayıp düzeltmeye ve otomasyon yoluyla zamandan tasarruf etmeye yardımcı olur.

Bugün sık kullanılan Android Espresso ve Android Barista framework’lerini ele alacağız.

Android Espresso, Android Destek Kitaplığı’nda kullanılmak üzere Google tarafından oluşturulan bir test aracıdır, böylece herhangi bir ek bağımlılık eklemeden herhangi bir Android uygulamalarınızda kullanabilirsiniz. Android uygulamaları için güvenilir testler yazmak için basit ve kullanımı kolay bir API sunar.

Android Barista ise UI testleri yazmak için başka bir test framework’dür. Espresso üzerine inşa edilmiştir ve karmaşık UI testlerine karşı kullanımı daha kolaydır. Farklı uygulama durumlarını test etme desteği içerir ve uygulamanın arayüzüyle etkileşim için API desteği sağlar.

Farklılıklar: Hangisi Daha İyi?

Aslında, hangisinin kullanılacağı, sizin ihtiyaçlarınıza ve tercihlerinize bağlı olacaktır. Öyleyse size farkları söyleyeyim ve siz karar verin!

Espresso vs Barista

Entegrasyon
Uygulama süreci her ikisinde de aynıdır, ilgili kütüphaneyi bağımlılık bölümüne ekledikten sonra artık bir test yazabilirsiniz!

//Espresso
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test:rules:1.4.0'
// Barista
androidTestImplementation('com.adevinta.android:barista:4.2.0') {
exclude group: 'org.jetbrains.kotlin'
}

Ayrıca Barista halihazırdaespresso-core veespresso-contrib içermektedir.

Action

Espresso ve Barista’da birkaç action örneğinin kullanımı. Tümüne erişmek için: Espresso ActionBarista Action

Espresso:

  • Click — onView(withId(R.id.button)).perform(click())
  • Writing — onView(withId(R.id.edittext)).perform(typeText("A great text"))
  • Dialogs — onView(withText("OK")).inRoot(isDialog()).check(matches(isDisplayed()) .perform(click())
  • Scrolls —
    onView(withId(R.id.save_account_info)).perform(customScrollTo,click())
    Burada! Görünüm bir ScrollView içinde değilse Espresso başarısız olur

Barista:

  • Click — ClickOn(R.id.button)
  • Writing — writeTo(R.id.edittext, "A great text")
  • Dialogs — clickDialogPositiveButton()
  • Scrolls — scrollTo(R.string.text)

Barista, kullanım kolaylığı, öğrenme ve test yazarken eylemleri akılda tutma açısından daha uygun görünüyor. Ayrıca Barista, farklı uygulama durumlarını test etme desteği, özel görünümleri test etmek için gelişmiş destek ve daha sezgisel ve reaktif bir kod yapısı ile Espresso’da bulunmayan ek özellikler ve yetenekler sağlar. (Örneğin, Espresso’yu NestedScrollView için kullanamazsınız) Bu, Android Barista’yı Espresso’dan daha güçlü ve esnek bir test framework’ü yapar.

Kullanım

Android Espresso ile yazılmış basit bir test örneği inceleyelim:

ve Android Barista:

Barista ile ne kadar kolay olduğunu görüyor musunuz? :)

Login Form için Test Yazalım (Espresso — Barista)

Login Formu için geçerli ve geçersiz login senaryoları üzerine bir test yazalım. Kodları inceleyerek hangisini daha hızlı yapabileceğinizi düşünün!

Espresso:

Barista:

Gördüğünüz gibi Android Barista testi, Android Espresso testinden daha özlü ve okuması daha kolay. Bunun nedeni, daha önce de belirttiğimiz gibi Android Barista’nın test için daha sezgisel ve reaktif bir yaklaşım kullanmasıdır.

Android Barista’nın en önemli avantajlarından biri, geliştiricilerin uygulamalarının kullanıcı deneyimine daha yakından bağlı testler yazmasına izin vermesidir. Bu, kullanıcı etkileşimlerini doğru bir şekilde simüle eden ve uygulamanın beklendiği gibi davrandığını doğrulayan testler yazmayı kolaylaştırır.

Sonuç

Sonuç olarak; kullanım şekli performansınıza ve tercihinize bağlı olsa da Barista’nın daha okunaklı ve kullanışlı olduğunu incelediğimiz örneklerde de gördük. Barista temelde Espresso tabanlı olduğu için aynı işlevselliği vermekle kalmayıp tepkisel yaklaşım özelliği ile de daha güçlü diyebiliriz. Barista’nın sloganını bir kez daha hatırlayalım: Barista, the one who serves a great Espresso. (Harika Espresso yapan Barista.) İyi testler! ✌️

Yardımcı olduysa ne mutlu, okuduğunuz için teşekkürler!

Yorumlarınızı ve alkışlarınızı bekliyor olacağım! 👏

--

--