不同Android SDK版本的JUnit4参数化测试
Posted
技术标签:
【中文标题】不同Android SDK版本的JUnit4参数化测试【英文标题】:JUnit4 parameterized test with different Android SDK versions 【发布时间】:2022-01-03 06:41:30 【问题描述】:我想测试一个函数,该函数具有针对不同 android SDK 构建版本和一些参数的条件语句。函数如下:
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.O)
// do something with parameter(s) and return it;
else
// do something with parameter(s) and return it;
我可以使用Parameterized.class
runner 或 JUnitParams 让它使用一组参数运行。我还可以创建单个测试函数,并可以更改SDK_INT
字段并调用该函数进行测试。但是我无法将这两种方法结合到同一个单元测试类中。
是否有任何注释可以为特定的测试方法设置 SDK?或者测试上述功能的最佳方法是什么?
【问题讨论】:
【参考方案1】:一个简单但不优雅的解决方案是使用Enclosed runner 和内部类更改带有@BeforeClass
注释的函数中的SDK_INT
字段。
【讨论】:
以上是关于不同Android SDK版本的JUnit4参数化测试的主要内容,如果未能解决你的问题,请参考以下文章
31.0.0 不是有效的 SDK 版本。选项是 26.0.0 未版本化