Czy jest jakiś dobry sposób na przetestowanie kodu wynikowego i danych w teście Android Espresso? Używam Espresso 2.0.Jak mogę przetestować setResult() w teście Android Espresso?
Załóżmy, że mam Activity
o nazwie BarActivity.class
, który po wykonaniu niektórych czynności wywołuje setResult(int resultCode, Intent data)
z odpowiednim ładunkiem.
Chciałbym napisać test case, aby zweryfikować resultCode
i data
. Jednak ponieważ setResult()
jest metodą final
, nie mogę jej przesłonić.
Niektóre opcje myślałem o to:
- Zdefiniuj nową metodę jak
setActivityResult()
i po prostu używać, dzięki czemu może zostać przechwycone, etc ... - napisać test-tylko działanie testowe, które nazywamy
startActivityForResult()
naBarActivity
i sprawdzić wynik wTestActivity.onActivityResult()
staramy się myśleć, co jest mniejszą z dwóch zła, czy istnieje jakieś inne sugestie, w jaki sposób przetestować w tym celu. Jakieś sugestie? Dzięki!
Oto częściowe rozwiązanie dla opcji 2: https://product.reverb.com/2016/03/12/testing-android-activity-results/ Jednak nie do końca, przynajmniej nie udało mi się dokonać działa. – friedger