我有两个项目,我的主要Android应用程序和另一个在该android应用程序之上运行的测试项目。
我在我的android测试项目中放置了一个文本文件,该文件包含信息xml内容。 xml内容是我的Android应用程序在点击服务器时会收到的内容。
我在Android测试项目中使用TestCase类来测试这一点功能。不幸的是,我在将内容加载到我的Android测试项目时遇到了问题。每次我尝试将文件加载到我的Android测试项目时,它都找不到文本文件。我是否正确地说,我可以获得该文件的唯一方法是将其从我的Android测试项目中删除并将其放入我的实际Android项目中,或者我遗漏了一些让我从我的Android测试项目中加载文件的内容。
详细说明: 在我的Android测试项目中,我将文件保存在/ res / raw / testFile下 当我尝试做
时File myFile = new File("/res/raw/testFile");
我得到一个java.io.FileNotFoundException:/ res / raw / testFile(没有这样的文件或目录)
由于
答案 0 :(得分:1)
我正在使用TestCase类。
扩展TestCase时无法访问系统资源。 TestCase是jUnit的一部分而不是android。
相反,您可以扩展InstrumentationTestCase。这将允许您访问目标应用程序的上下文getInstrumentation().getTargetContext()
和测试应用程序的上下文getInstrumentation().getContext()
。
然后您可以按如下方式访问原始文件。
Context testContext = getInstrumentation().getContext();
InputStream input = testContext.getResources().openRawResource(R.raw.sample);
如果您需要有关输入流的帮助,请查看this question。
答案 1 :(得分:0)
据我所知,一个应用程序的资源不能与另一个应用程序共享,除非您已将其作为内容提供商进行,或者等等。
我的建议是将这个文件写在/sdcard//sample.xml这样的常用位置。
对这两个应用程序的读写权限。
答案 2 :(得分:0)