Esiste un buon metodo per testare il codice dei risultati e i dati in un test Android Espresso? Sto usando Espresso 2.0.Come posso testare setResult() in un test Android Espresso?
Supponiamo di avere un Activity
chiamato BarActivity.class
, che dopo l'esecuzione di alcune azioni, chiama setResult(int resultCode, Intent data)
con il payload appropriato.
Mi piacerebbe scrivere un test case per verificare il resultCode
e data
. Tuttavia, poiché setResult()
è un metodo final
, non riesco a sovrascriverlo.
Alcune opzioni ho pensato sono stati:
- definire un nuovo metodo come
setActivityResult()
e basta usare che quindi può essere intercettato, ecc ... - scrivere un test di sola TestActivity che chiamerà
startActivityForResult()
suBarActivity
e verificare il risultato inTestActivity.onActivityResult()
Cercando di pensare a ciò che è minore dei due mali, o se ci sono altri suggerimenti su come verificare questa. Eventuali suggerimenti? Grazie!
Ecco una soluzione particolare per l'opzione 2: https://product.reverb.com/2016/03/12/testing-android-activity-results/ Tuttavia, non completa, almeno non sono riuscito a fare funziona. – friedger