【发布时间】:2020-12-04 03:45:00
【问题描述】:
我正在开发一个 android 库。
库接受一些参数。例如,它有一个 setStyle 方法,它接受对样式资源的引用:
fun setStyle(@StyleRes style: Int) ...
我想测试这个方法。为此,我想在单元测试中将资源 TestStyle 传递给库。像这样的:
myLibrary.setStyle(R.style.TestStyle)
但是,我不想在主 src/main/res/values/styles.xml 中创建 TestStyle 资源,因为这会使使用我的库的人可以使用该资源。我希望它只在测试中可用。
相反,我尝试将TestStyle <item /> 放在src/test/res/values/styles.xml 的一个新的仅测试文件中。但是,我不知道如何在单元测试中访问它,因为它不能通过 R 获得。
如何创建只能在测试中访问而不能在代码的其他部分访问的资源?
【问题讨论】:
-
在您的应用程序的调试风格中添加资源。这将不适用于您发布的库。否则我看不到满足您要求的方法
-
@alokHarman 嗯,这是个好主意,我会用它作为临时解决方案。
-
@alokHarman 这将适用于调试单元测试,但发布单元测试将失败。所以,如果你从命令行运行“gradlew test”,它会失败。
标签: android unit-testing testing tdd