Ho notato che di tanto in tanto c'è una domanda sull'utilizzo di Robolectric per testare ContentProvider personalizzati. Tuttavia, non c'è mai stata una risposta concreta e non ambigua su come farlo correttamente. Ho inciampato su 2 diversi approcci:Contenuto di materiale elettrico Test del fornitore
uno dicendo che si può semplicemente istanziare un ContentProvider in memoria, che è possibile utilizzare per inserire e dati di query (https://gist.github.com/anonymous/6139359)
l'altro dicendo di utilizzare la ShadowContentResolver per impostare cursore dati finti (https://groups.google.com/d/msg/robolectric/r35mMirIkTs/xJJBNXl_RgwJ)
Tuttavia, sto diventando un java.lang.InstantiationException con entrambi gli approcci. Ci sono stati alcuni messaggi SO che affermano che ciò è dovuto a SQLiteDatabase.rawQueryWithFactory (SQLiteDatabase.java) non sottoposto a override in Robolectric (Android + Robolectric - RuntimeException/InstantiationException in queryBuilder.query() in ContentProvider).
Suppongo che la mia domanda sia: esistono soluzioni alternative preimpostate che rendono possibile il test dei ContentProvider. O ci sono altri approcci che sono migliori di quelli menzionati sopra.
Suggerisco di non utilizzare il primo collegamento - il codice è completamente stupido e non verrà nemmeno compilato. –