IsolatedContext与AndroidTestCase.getContext()

Arl*_*ren 12 testing android android-context

我正在编写一些测试来测试我的sqllite数据库代码.有人可以在这里解释使用我从中获取AndroidTestCase.getContext()或使用的上下文编写这些测试是否会有所不同IsolatedContext.

Gow*_*iem 8

对于那些不想关注谷歌集团链接的人,这里有答案:

AndroidTestCase.getContext()返回一个普通的Context对象.它是测试用例的上下文,而不是被测组件.

IsolatedContext返回"模拟"上下文.我把"模拟"放在引号中,因为它不是该术语的正常意义上的模拟(用于测试).相反,它是您必须自己设置的模板上下文.它将您与正在运行的Android系统"隔离",以便您的Context或测试不会意外地超出测试夹具.例如,IsolatedContext不会意外地命中生产数据库(除非您将其设置为执行此操作!)但是,请注意,IsolatedContext中的某些方法可能会抛出异常.IsolatedContext在"测试基础"和"内容提供程序测试"中的"框架主题">"测试"下的"开发人员指南"中进行了记录.

这是IsolatedContext上的Android文档.

以下是"测试基础"文档的相关部分.