gpt4 book ai didi

android - ServiceTestCase 空指针中的 MockContentResolver

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:58 25 4
gpt4 key购买 nike

我正在尝试以类似 TDD 的方式创建服务,为此我创建了以下测试。该服务基本上轮询 Web 服务并将新信息放入内容提供程序。由于它是一项服务,因此我使用内容提供程序将信息存储到其中作为测试的 oracle。

我想我想做的是创建一个 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);
}
}

最佳答案

在我看来,您似乎从未实例化过mContentResolver(您没有像mContentResolver = new MockContentResolver(); 这样的行。

关于android - ServiceTestCase 空指针中的 MockContentResolver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com