对于我的
Android应用,我正在编写需要阅读一些文件的单元测试.因为那些是仅测试文件,我不希望他们在我的res文件夹,因为我不希望他们最终在我的最后的.apk文件.
我想做类似于this question的事情,但使用新添加的(在Gradle 1.1)unit test support(而不是仪器测试).
我的项目结构如下:
/app /src /main /java/my.module/myClass.java /res/production_resources_go_here /test /java/my.module/myClassTest.java /resources/testFile.txt
我的myClassTest测试应该能够成功读取testFile.txt吗?
解决方法
在提出这个问题的时候,这根本就不行.幸运的是,自从以后已经修复了.
你必须把你的文本文件放在app / src / test / resources文件夹下,就像OP试图做的那样.此外,它必须与测试类在同一个包中.因此,如果您在app / src / test / java文件夹中的package com.example.test中有ReadFileTest.java,那么您的测试文件应该在app / src / test / resources / com / example / test中.
然后你可以得到这样你的文本文件:
getClass().getResourceAsStream("testFile.txt")
这将为文本文件打开一个InputStream.如果你不确定该怎么做,这里有许多方法可以使用它:Read/convert an InputStream to a String