在android中,如何在单元测试和仪器测试之间共享资源?

在android中,如何在单元测试和仪器测试之间共享资源?,android,unit-testing,junit,tdd,Android,Unit Testing,Junit,Tdd,我在下面这篇文章中分享代码,但是如何共享资产?比如fixture文件?我想模拟api响应,所以我有一个JSON文件来实现,但我尝试了以下方法: 在单元测试中,这起作用: ClassLoader.getSystemResourceAsStream("some_response.json"); 但是在Android设备测试中,它没有,我可以把那些设备文件放在哪里?我找到了这种方法,从test到androidTest共享设备文件: 将夹具文件添加到testone的resources文件夹中,此处:

我在下面这篇文章中分享代码,但是如何共享资产?比如fixture文件?我想模拟api响应,所以我有一个JSON文件来实现,但我尝试了以下方法:

在单元测试中,这起作用:

ClassLoader.getSystemResourceAsStream("some_response.json");

但是在Android设备测试中,它没有,我可以把那些设备文件放在哪里?

我找到了这种方法,从
test
androidTest
共享设备文件:

  • 将夹具文件添加到
    test
    one的
    resources
    文件夹中,此处:
    src/test/resources
  • test
    resources文件夹添加到
    androidTest
    resources.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
    env访问夹具文件:
    this.getClass().getClassLoader().getResourceAsStream(文件名)


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