Testen der SQLite-Datenbank in Robolectric

Ich versuche zu testen, eine einfache SQLite-Datenbank mit Robolectric in meiner Android-Anwendung. Ich bin putting in einige Werte, aber wenn Sie zu Lesen wieder 0 Zeilen zurückgegeben werden.

Ich bin über die SQLiteOpenHelper Klasse auf die Datenbank zugreifen.

// 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

Beim Debuggen des Codes außerhalb robolectric dies funktioniert wie erwartet. Mache ich etwas falsch oder ist es nicht möglich zu testen, SQlite-Datenbanken mit Robolectric?

InformationsquelleAutor der Frage Kjetil Eide | 2011-09-06

Schreibe einen Kommentar