2012-10-17 5 views
0

나는 SQLite 데이터베이스를 사용하는 안드로이드 애플 리케이션을위한 JUnit 테스트를하고있다. 테스트 케이스를 조작 할 수있는 테스트 데이터베이스를 만들어야합니다. 데이터베이스는 알려진 구성에서 시작하여 각 테스트 케이스별로 재설정해야합니다. SQLiteOpenHelper null 값을 데이터베이스의 파일 이름 (see this article for details)으로 전달하여 메모리 내장 데이터베이스를 사용할 수 있음을 알았습니다. 이제 일부 테스트를 위해 데이터베이스 테이블을 채우고 싶습니다. 로컬 파일 시스템에 테스트 용으로 사용할 수있는 일부 데이터가 포함 된 CSV 파일이 있습니다. 테스트를 위해 에뮬레이터 또는 다른 장치에서이 데이터를 SQLite 데이터베이스로 가져 오는 방법은 무엇입니까?안드로이드에서 SQLite 데이터베이스 테스트하기

+1

다음을 확인하십시오. http://stackoverflow.com/questions/9109438/how-to-use-an-existing-database-with-an-android-application/9109728#9109728 –

+0

@YaqubAhmad 링크를 제공해 주셔서 감사합니다. 나는 오늘 밤이나 그보다 늦은 이번 주말에 그러한 제안을 시도 할 것이다. –

답변

2

SQLite 라이브러리 코드에 내장 된 CSV 가져 오기 기능이 없습니다.

그러나 sqlite3 명령 줄 도구는 CSV 파일을 가져올 수 있습니다. 가져온 후에는 adb 도구로 기기에 복사 할 수있는 데이터베이스 파일이 있습니다. 또는 sqlite3의 .dump 명령을 사용하여 SQL 명령을 생성하여 데이터베이스를 다시 만들 수 있습니다. 그런 다음 문자열 배열에 넣거나 테스트 프로그램에서 읽은 텍스트 파일에 넣습니다.

+0

당신이 말하는'sqlite3' 도구가 제 데스크탑의 명령 행에서 실행될 것이라고 가정합니다. 따라서 CSV 파일을 데이터베이스로 가져 오면 내 데스크톱 파일 시스템에 저장됩니다. 그 양 손의 작업은 괜찮습니다. 이제 테스트 중에 해당 데이터베이스를 프로그래밍 방식으로 장치로 가져 오는 방법이 있습니까? 나는 또한 안드로이드 API로 어려워서는 안되는 (아마도'tearDown()'메소드에서) 데이터베이스를 지울 필요가있을 것이다. 필자가 잘 모르는 부분은 우선 에뮬레이터에서 데이터베이스를 가져 오는 것입니다. –

관련 문제