AndroidInstrumentation测试的模拟文件输入流

AndroidInstrumentation测试的模拟文件输入流,android,mockito,inputstream,fileinputstream,Android,Mockito,Inputstream,Fileinputstream,我想在检测测试中读取文件: public class MyTest extends AndroidTestCase { @Override public void setUp() throws Exception { super.setUp(); ... } } 我尝试了以下方法,但没有一种成功: InputStream InputStream=getContext().getAssets().open(“myFile”)和文件myFi

我想在检测测试中读取文件:

public class MyTest extends AndroidTestCase {

    @Override
    public void setUp() throws Exception {
        super.setUp();
        ...
    }
}
我尝试了以下方法,但没有一种成功:
InputStream InputStream=getContext().getAssets().open(“myFile”)
文件myFile=新文件(“src/androidTest/myFile”)

我试了一下

Resources res = getContext().getResources();
InputStream in = res.openRawResource(R.raw.testfile)
这是在中建议的,但我没有访问R的权限

你知道我怎么做吗

我想模拟
文件输入流

附录:

我找到了获取inputStream的解决方法:

InputStream inputStream = getInstrumentation()
                .getContext()
                .getResources()
                .openRawResource(com.mypackage.instrumenttest.
                        R.raw.sifo_cookie_key_json);
final File file = File.createTempFile("file", ".txt");
convertStreamToFile(inputStream, file);

FileInputStream fileInputStream = new FileInputStream(file);
案例是我需要扩展
InstrumentationTestCase
而不是
AndroidTestCase
才能访问
R

但我需要的是一个
文件inputStream
,而不是inputStream,因为我需要以下模拟返回:

when(mockContext.openFileInput(FILE_NAME)).thenReturn(fileInputStream);
和openFileInput:返回fileInputStream

我做了一个将InputStream转换为fileInputStream的变通方法:

InputStream inputStream = getInstrumentation()
                .getContext()
                .getResources()
                .openRawResource(com.mypackage.instrumenttest.
                        R.raw.sifo_cookie_key_json);
final File file = File.createTempFile("file", ".txt");
convertStreamToFile(inputStream, file);

FileInputStream fileInputStream = new FileInputStream(file);

但这不是一个好的解决方案,我想知道我是否可以得到
FileInputStream
而不是
InputStream

您是在尝试读取真实的文件,还是创建一个模拟文件?一个我放在参考资料下原始文件夹中的真实文件。在这种情况下,您需要编辑问题和标记以删除“模拟”。除非你想要一个没有真实数据(或有限的真实数据)的假对象,否则mock和Mockito这样的模拟框架与你的问题无关。事实上,那么,解决你的问题了吗?我会调查一下,让你知道。谢谢你的帮助。