gpt4 book ai didi

android - 在 Android Instrumentation 上下文中写入/创建文件

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

我有一个类可以创建(或打开)一个文件以向其中写入一些数据。该类在构造函数中接收一个 Context,将其保存在实例字段中,然后使用它调用 context.openFileOutput 方法。

在运行应用程序时,我通过将 ApplicationContext 作为 Context 来实例化这个类,一切都按预期工作。

但是,当我尝试使用 Instrumentation Test 测试这个类时,我得到一个 NullPointerException。我正在传递 getInstrumentation().getContext() 上下文,我知道它对应于测试的上下文,而不是真正的应用程序。

getInstrumentation().getContext().openFileOutput("myFile", Context.MODE_PRIVATE); // This throws NullPointerException :( :(

在测试中,我需要在测试包中而不是在应用包中创建此文件,因为我不想在我的应用中覆盖该文件。

我知道那里有一个 RenamingDelegatingContext 类,但我无法将此上下文传递给我的类,因为我的类还打开了一个原始资源,并且我希望该资源在运行测试时有所不同(类似于模拟资源)。

我对此进行了很多搜索,但没有关于 Instrumentation Context 的文档。我找不到它的局限性,也找不到任何能解决我问题的东西。

你知道如何解决这个问题吗?

最佳答案

我不记得这是什么时候更改的,但在仪器测试期间获取 Context 对象的当前方法是导入

导入android.support.test.InstrumentationRegistry;

然后打电话

InstrumentationRegistry.getContext();

希望这会有所帮助!

关于android - 在 Android Instrumentation 上下文中写入/创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22714624/

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