계측 테스트 코드 작성시 외부에서 리소스(파일)을 불러와야 하는 경우가 있다.

다음의 절차를 따라 리소스를 불러 올 수 있다.

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로 다룰 수 있다.

}
카테고리: etc

0개의 댓글

답글 남기기

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.