Я пытаюсь создать Сервис в стиле TDD, и для этого я создал следующий тест. Сервис в основном опрашивает веб-сервис и помещает новую информацию в контент-провайдера. Поскольку это сервис, я использую контент-провайдер, в котором он будет хранить информацию как оракул теста.
Я думаю, что я хочу сделать, это создать MockContentResolver для достижения этой цели, но не хватает примеров этого вне класса ProviderTestCase2. Однако, когда я запускаю этот скрипт, он указывает на нулевые указатели в строке addProvider.
Есть ли у кого-нибудь пример создания / доступа к преобразователю контента с макетом? В ServiceTestCase?
public class OnDemandPollingServiceTests extends ServiceTestCase<OnDemandJobFetchingService> {
private MockContentResolver mContentResolver;
public OnDemandPollingServiceTests() {
super(OnDemandJobFetchingService.class);
}
protected void setUp() throws Exception {
super.setUp();
mContext = getContext();
ContentProvider cp = new OnDemandJobInfoProvider();
mContentResolver.addProvider(OnDemandJobInfoProvider.AUTHORITY, cp);
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testJobInsertion() {
Uri url = Jobs.JobsColumns.CONTENT_URI;
Cursor cursor;
cursor = mContentResolver.query(url, null, null, null, null);
int before = cursor.getCount();
cursor.close();
Intent startIntent = new Intent();
startIntent.setClass(mContext, OnDemandJobFetchingService.class);
startService(startIntent);
cursor = mContentResolver.query(url, null, null, null, null);
int after = cursor.getCount();
cursor.close();
assertTrue(before != after);
}
}