Sono nuovo al test di unità e voglio testare il mio SQLiteDataBase.Test di Android Studio Unit SQLiteDataBase è nullo
ho una classe di nome MySQLiteHelper che si estende SQLiteOpenHelper. Ho una classe denominata LocationDataHandler che uso per aggiungere o eliminare elementi dal mio DataBase. E ho una classe LocationDataHandlerTest, che si estende AndroidTestCase, per testare la mia LocationDataHandler classe.
Sto provando a testare il mio database SQLite ma mi sembra di essere un po 'perso tra tutti i diversi contesti.
Ecco il mio codice:
//Context context = new Activity();
//IsolatedContext context = getMockContext();
//Context context = new MockContext();
//Context context = getInstrumentation().getContext();
Context context = getContext();
helper = new MySQLiteHelper(context);
assertNotNull(helper);
SQLiteDatabase db = helper.getWritableDatabase();
assertNotNull(db); <---- it fails here !
come potete vedere ho provato con molti contesti differenti che ho visto persone utilizzano e lavorano con. Non capisco davvero perché non funzioni nel mio caso.
Il mio problema è che il test sta fallendo sulla linea "assertNotNull (db);" il che significa che non posso mai recuperare il mio database.
Sto facendo questo nel modo sbagliato? Non sto usando il contesto giusto?
Edit: Ecco la mia logcat:
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:55)
at junit.framework.Assert.assertTrue(Assert.java:22)
at junit.framework.Assert.assertNotNull(Assert.java:256)
at junit.framework.Assert.assertNotNull(Assert.java:248)
at junit.framework.TestCase.assertNotNull(TestCase.java:417)
at com.databerries.LocationDataHandlerTest.testAddLocation(LocationDataHandlerTest.java:72)
puoi aggiungere il logcat? solo per ottenere in dettaglio qual è il tuo problema .. –
Hai provato 'getInstrumentation.getTargetContext()'? –
sì, mi lancia un'eccezione di puntatore nullo sulla riga: 'Contesto contesto = getInstrumentation(). GetTargetContext();' –