如何解决Android:为测试添加单独的资源
我正在开发一个android库。
该库接受一些参数。例如,它具有setStyle方法,该方法接受对样式资源的引用:
fun setStyle(@StyleRes style: Int) ...
我想测试这种方法。为此,我想在单元测试中将资源TestStyle
传递给库。像这样:
myLibrary.setStyle(R.style.TestStyle)
但是,我不想在主TestStyle
中创建src/main/res/values/styles.xml
资源,因为这会使使用我的图书馆的人可以使用该资源。我希望它仅在测试中可用。
相反,我尝试将TestStyle
<item />
放置在src/test/res/values/styles.xml
的新的仅测试文件中。但是,我无法弄清楚如何在单元测试中访问它,因为它无法通过R获得。
如何创建只能在测试中访问的资源,而在代码的其他部分却不能访问?
解决方法
将您的资源放在某个文件夹中。例如“src/test/res”。并使用以下 gradle 配置:
android {
...
testOptions {
unitTests.includeAndroidResources = true
}
}
tasks.withType(Test) {
android.sourceSets.main.res.srcDirs += 'src/test/res'
}
这样,调试和发布测试版本的资源将可见,但它们不会打包到您的库或应用中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。