首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >需要上下文的Android单元测试

需要上下文的Android单元测试
EN

Stack Overflow用户
提问于 2010-01-20 01:54:30
回答 6查看 55.5K关注 0票数 74

我正在编写我的第一个Android数据库后端,我正在努力对我的数据库的创建进行单元测试。

目前,我遇到的问题是获取一个有效的上下文对象来传递给我的SQLiteOpenHelper实现。有没有办法在扩展TestCase的类中获取上下文对象?我想到的解决方案是在TestCase的access...but方法中实例化一个活动,然后将该活动的上下文分配给一个我的测试方法可以设置的字段变量,似乎应该有一个更简单的方法。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-20 02:01:52

您可以尝试切换到AndroidTestCase。从文档来看,它似乎应该能够为您提供一个有效的上下文来传递给SQLiteOpenHelper。

编辑:请记住,您可能必须在Eclipse的"Android Test Project“中设置测试,因为测试将尝试在模拟器(或真实设备)上执行。

票数 42
EN

Stack Overflow用户

发布于 2016-05-21 00:20:21

您可以使用InstrumentationRegistry方法来获取上下文:

InstrumentationRegistry.getTargetContext() -提供目标应用程序的应用程序Context

InstrumentationRegistry.getContext() -提供此工具程序包的Context

对于AndroidX,请使用InstrumentationRegistry.getInstrumentation().getTargetContext()InstrumentationRegistry.getInstrumentation().getContext()

AndroidX新接口:ApplicationProvider.getApplicationContext()

票数 48
EN

Stack Overflow用户

发布于 2012-08-20 22:27:54

根据我的经验,使用AndroidTestCase:getContext()方法只提供了一个存根上下文。在我的测试中,我在我的主应用程序中使用了一个空的activity,并通过它获得了Context。我还用ActivityInstrumentationTestCase2类扩展了测试套件类。看起来对我很管用。

代码语言:javascript
复制
public class DatabaseTest extends ActivityInstrumentationTestCase2<EmptyActivity>
    EmptyActivity activity;
    Context mContext = null;
    ...
    @Before
    public void setUp() {
        activity = getActivity();
        mContext = activity;
    }
    ... //tests to follow
}

其他人都在做什么?

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2095695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档