gpt4 book ai didi

Android JUnit4 测试 - 从哪里获取上下文?

转载 作者:IT老高 更新时间:2023-10-28 22:16:26 28 4
gpt4 key购买 nike

我必须构建一个使用 sqlite 的应用程序。现在我想编写我的单元测试。这些单元测试应该测试我的类 SQLiteBridgeSQLiteBridge 为 Model 的每个子类提供 DAO。

现在我遇到了一个问题,我需要一个上下文来创建我的 SQLiteBridgeSQLiteBridge 在系统上创建和处理 SQLite 数据库..

从哪里获取上下文对象?

我的设置是这样的(所以我使用 Junit4 [感谢上帝]): http://tools.android.com/tech-docs/unit-testing-support

编辑:我希望有像旧的 AndroidTestCase 这样的方法来扩展而不会丢失 Junit4。 :)

最佳答案

如此处所述:https://code.google.com/p/android-test-kit/wiki/AndroidJUnitRunnerUserGuide使用 InstrumentationRegistry 获取上下文。

但是,如果您直接调用 InstrumentationRegistry.getContext(),您可能会在打开数据库时遇到异常。我相信这是因为 getContext() 返回的上下文指向仪器的上下文,而不是您的应用程序/单元测试的上下文。而是使用 InstrumentationRegistry.getInstrumentation().getTargetContext()

例如:

@RunWith(AndroidJUnit4.class)
public class SqliteTest {

Context mMockContext;

@Before
public void setUp() {
mMockContext = new RenamingDelegatingContext(InstrumentationRegistry.getTargetContext(), "test_");
}
}

RenamingDelegatingContext 只是在文件/数据库名称前加上 test_ 前缀,以防止您覆盖同一模拟器中可能拥有的数据。

关于Android JUnit4 测试 - 从哪里获取上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30319838/

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