【问题标题】:How to share resources between unit test and instrumentation test in android?如何在android中的单元测试和仪器测试之间共享资源?
【发布时间】:2023-03-09 04:49:01
【问题描述】:

我正在关注http://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/ 这篇帖子,以共享代码,但如何共享资产?比如夹具文件?我想模拟一个 api 响应,所以我有一个 JSON 文件来做,但我试试这个:https://gist.github.com/nebiros/91a68aaf6995fa635507

在单元测试中,这是可行的:

ClassLoader.getSystemResourceAsStream("some_response.json");

但在 Android Intrumentation Tests 中却没有,我可以将这些夹具文件放在哪里?

【问题讨论】:

  • 有什么解决办法吗?我也面临同样的问题
  • @Nazneen 我发布了我找到的解决方案。

标签: android unit-testing junit tdd


【解决方案1】:

我找到了这种方式,将夹具文件从test 共享到androidTest

  • 将您的夹具文件添加到您的testresources 文件夹中,此处为:src/test/resources
  • test资源文件夹添加到androidTestresources.srcDirs += ['src/test/resources'],这是一个示例:

    android {
        sourceSets {
            String sharedTestJavaDir = 'src/sharedTest/java'
    
            test {
                java.srcDirs += [sharedTestJavaDir]
            }
    
            androidTest {
                java.srcDirs += [sharedTestJavaDir]
                resources.srcDirs += ['src/test/resources']
            }
        }
    }
    
  • 通过这种方式从您的 androidTest 环境访问夹具文件:this.getClass().getClassLoader().getResourceAsStream(filename);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2020-03-03
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    相关资源
    最近更新 更多