как JUnit тестировать ContentResolver.notifyChange

Пишу тесты для ContentProvider, в insertуведомляю об изменениях сgetContext().getContentResolver().notifyChange(mUri, null);

мой класс тестов расширяется ProviderTestCase2. Я создал следующий фиктивный класс ContentObserver:

private class ContentObserverMock extends ContentObserver {
    public boolean changed = false;

    public ContentObserverMock(Handler handler) {
        super(handler);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onChange(boolean selfChange) {
        changed = true;
    }

    @Override
    public boolean deliverSelfNotifications() {
        return true;
    }
}

и это тестовый пример:

public void testInsertNotifyContentChanges() {
    ContentResolver resolver = mContext.getContentResolver();
    ContentObserverMock co = new ContentObserverMock(null);

    resolver.registerContentObserver(CONTENT_URI, true, co);

    ContentValues values = new ContentValues();
    values.put(COLUMN_TAG_ID, 1);
    values.put(COLUMN_TAG_CONTENT, "TEST");

    resolver.insert(CONTENT_URI, values);
    assertTrue(co.changed);
}

кажется, что onChangeникогда не вызывается, я также пробовал ContentObserverMock co = new ContentObserverMock(new Handler());с тем же результатом.

что я здесь делаю не так?

8
задан Gal Ben-Haim 14 July 2012 в 08:06
поделиться