【问题标题】:JUnit4 parameterized test with different Android SDK versions不同Android SDK版本的JUnit4参数化测试
【发布时间】: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?或者测试上述功能的最佳方法是什么?

【问题讨论】:

    标签: android sdk junit4 parameterized


    【解决方案1】:

    一个简单但不优雅的解决方案是使用Enclosed runner 和内部类更改带有@BeforeClass 注释的函数中的SDK_INT 字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 2022-07-08
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多