Les tests de base de données SQLite dans Robolectric

Je suis en train de tester une simple base de données SQLite en utilisant Robolectric dans mon application Android. Je suis en train de mettre en certaines valeurs, mais lors de la lecture de retour 0 lignes sont retournées.

Je suis en utilisant le SQLiteOpenHelper classe pour accéder à la base de données.

// RequestCache extends SQLiteOpenHelper
RequestCache cache = new RequestCache(activity); 
SQLiteDatabase db = cache.getWritableDatabase();

// Write to DB
ContentValues values = new ContentValues();
values.put(REQUEST_TIMESTAMP, TEST_TIME); 
values.put(REQUEST_URL, TEST_URL);
db.insertOrThrow(TABLE_NAME, null, values);

// Read from DB and compare values      
Vector<Request> matchingRequests = new Vector<Request>();
db = cache.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, SEARCH_URL_RETURN_COLUMNS, SEARCH_URL_WHERE, new String[] {url}, null, null, ORDER_BY, null);
int id = 0;

while(cursor.moveToNext()) {
    long timestamp = cursor.getLong(0);
    Request request = new Request(id++);
    request.setUrl(url);
    request.setCreationTimestamp(new Date(timestamp));
    matchingRequests.add(request);
}


// Assert that one row is returned
assertThat(matchingRequests.size(), equalTo(1));  // fails, size() returns 0

Lors du débogage du code de l'extérieur robolectric cela fonctionne comme prévu. Suis-je en train de faire quelque chose de mal ou n'est-il pas possible de tester les bases de données SQlite en utilisant Robolectric?

InformationsquelleAutor Kjetil Eide | 2011-09-06