계측 테스트 코드 작성시 외부에서 리소스(파일)을 불러와야 하는 경우가 있다.
다음의 절차를 따라 리소스를 불러 올 수 있다.
1. 리소스 디렉토리 파일 추가하기
계측 테스트를 수행하고자 하는 모듈 하위에 다음과 같이 resources 디렉토리를 추가한다.
${모듈}/src/test/resources
추가한 디렉토리에 원하는 리소스를 추가한다.
이 포스팅의 경우 test.jpg 파일을 추가 했다고 가정한다.
예) src/test/resources/test.jpg
2. 리소스 경로를 소스 디렉토리로 지정하기
모듈 레벨의 build.gradle에 다음 내용을 추가한다.
tasks.withType(Test::class.java) {
android.sourceSets.findByName("androidTest")?.resources?.also { resources->
resources.setSrcDirs(resources.srcDirs + file("src/test/resources"))
}
}
3. 계측 테스트에서 리소스 불러오기
계측 테스트 코드에서 다음과 같이 리소스를 불러 올 수 있다.
@RunWith(AndroidJUnit4::class) class ExtResTest { @Test private fun 리소스_불러오기(){ val context = InstrumentationRegistry.getInstrumentation().targetContext val name = "test.jpg" // InputStream을 통해 test.jpg 파일을 불러온다 val inputStream: InputStream = ExtResTest::class.java.classLoader!!.getResourceAsStream(name) // InputStream이 아닌 File로 리소스를 다루고 싶다면 다음과 같이 앱내 적당한 경로에 복사 한다. val file = File(context.filesDir, name) val fos = FileOutputStream(file) inputStream.copyTo(fos) inputStream.close() // 여기부터 test.jpg 파일을 file로 다룰 수 있다. }
0개의 댓글