mardi 3 novembre 2015

Unit testing SQLiteOpenHelper using Mockito on Android

I am trying to unit test this class:

public class TestDatabaseOpenHelper extends SQLiteOpenHelper {

public TestDatabaseOpenHelper(Context context) {
    super(context, "mydatabase", null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) { }

@Override
public void onUpgrade(SQLiteDatabase db, int var2, int var3) { }

public SQLiteDatabase getDatabase() {
    SQLiteDatabase db = this.getWritableDatabase();
    return db;
}

}

This is my unit test:

@RunWith(MockitoJUnitRunner.class)

public class TestTest {

@Mock
private SQLiteDatabase databaseMock;

@Test
public void test() {
    Context context = Mockito.mock(Context.class);
    TestDatabaseOpenHelper databaseHelper = new TestDatabaseOpenHelper(context);
    Mockito.when(databaseHelper.getWritableDatabase()).thenReturn(databaseMock);
    databaseHelper.getDatabase();
}

}

When I run it, I get this error: "java.lang.RuntimeException: Method getWritableDatabase in android.database.sqlite.SQLiteOpenHelper not mocked"

Why do I get the error?

Aucun commentaire:

Enregistrer un commentaire