안드로이드 개발을 효율적으로 하기 위해서는 단위 테스트를 어떻게 하는지 알아야 합니다. 협업 과정에서 자신이 개발한 모듈은 전체 테스트 이전에 단위 테스트를 거쳐 다양한 문제점들을 발견하고 수정해서 전달해야겠죠. 또한 안드로이드 시스템과 별개로 돌아가는 단위 테스트는 개발 시간도 단축시켜 줍니다. 이런 단위 테스트의 종류에는 Local Unit Testing 과 Instrumented Unit Testing 두 가지가 있습니다. 오늘은 안드로이드 시스템에 대한 의존성이 없는 Local Unit Test`ing 을 안드로이드 스튜디오에서 어떻게 사용하는지 알아 보겠습니다.
▼ 먼저 Local Unit Testing 을 위해서는 라이브러리가 필요합니다. 기본적으로 프로젝트를 생성하면 build.gradle 의 라이브러리에 junit 이 추가가 되어 있습니다. 이것이 없다면 dependencies 에 직접 입력을 해야 합니다. 그리고 Sync now 를 눌러 라이브러리를 다운 받습니다.
▼ 다음은 단위 테스트 파일이 들어갈 폴더를 생성해야 합니다. 이것을 Test Artifact 라고 합니다. 특정 클래스에 대한 단위 테스트 만들 때 파일이 추가될 폴더를 말합니다. 화면 왼쪽 하단에 마우스를 가져가면 메뉴 팝업창이 나타납니다. 목록에서 Build Variants 를 선택합니다.
▼ Build Variants 화면이 뜨면 새로 만든 폴더인 java 를 선택하고 Test Artifact 를 Unit Tests 로 지정합니다. 그럼 폴더의 색상은 녹색으로 변합니다. 이제 단위 테스트 클래스를 만들게 되면 이곳에 파일이 생성되게 됩니다. 하지만 안드로이드 스튜디오에서 프로젝트를 생성하면 굳이 이렇게 하지 않아도 됩니다. 기본적으로 Test Artifact 를 위한 폴더인 androidTest > java 가 만들어져 있기 때문입니다.
▼ 단위 테스트가 필요한 클래스로 가서 클래스명 위에 오른쪽 마우스를 눌러 Go To > Test 메뉴를 선택합니다. 이것은 해당 클래스의 단위 테스트 코드를 만들기 위한 절차 입니다.
▼ 팝업창이 뜨면 Create New Test 메뉴를 선택합니다.
▼ 단위 테스트 생성 팝업창에서 선택할 항목은 Test library 와 Generate 정도 입니다. 나머지는 기본값 그대로 두세요. Test library 는 기본적으로 JUnits3 이 세팅되어 있지만 JUnits4도 가능합니다. Generate 의 두 옵션 setup/testDown 은 실행전 과 종전에 처리해야 할 코드를 넣는 함수 생성 여부를 묻는 것입니다. 상단 옵션 체크가 끝났다면 아래로 내려와 테스트할 함수를 체크하고 OK 버튼을 눌러 창을 닫습니다.
▼ Create Test 팝업창에서 설정을 끝내고 닫으면 바로 단위 테스트 클래스가 생성됩니다. 그리고 옵션으로 선택한 setup, teardown, testSum 함수는 자동으로 생성되었네요. 이제 testSum 함수에 테스트할 Util 객체의 함수를 입력합니다.
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.logging.Logger;
public class UtilTest extends TestCase {
private Util util = new Util();
@Before
public void setUp() throws Exception {
super.setUp();
}
@After
public void tearDown() throws Exception {
}
@Test
public void testSum() throws Exception {
System.out.printf(String.valueOf(util.sum(10, 20)));
}
}
지금까지 만든 단위 테스트를 모듈을 실행하기 위해 test 폴더로 갑니다. 그럼 Util 클래스와 동일한 패키지 주소에 UtilTest 클래스가 보일 겁니다.
▼ 실행은 간단합니다. 오른쪽 마우스를 눌러 팝업 메뉴에서 Run/Debug 중 하나를 선택합니다. 브레이크 포인트를 걸어 디버깅을 하고 싶다면 Debug ‘UtilTest’ 메뉴를 선택해야겠죠.
▼ 실행한 결과는 다음과 같습니다. 콘솔에 Util 클래스의 sum 함수를 호출한 결과가 찍혔습니다. 지금까지 특정 클래스에 대한 단위 테스트를 쉽고 빠르게 만드는 방법에 대해 알아 보았습니다.
'프로그래밍 툴 > 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 배포용 APK 만드는 방법 (3) | 2024.12.04 |
---|---|
안드로이드 스튜디오 빌드 과정에서 failed to find Build Tools revision 24.0.0 버전 에러 나는 경우 (0) | 2024.04.10 |
안드로이드 스튜디오 Gradle JDK 변경하기 (0) | 2024.02.15 |
안드로이드 스튜디오 Waiting for all target devices to come 에뮬레이터 먹통일 때 (0) | 2024.01.10 |
안드로이드 스튜디오 플러그인 설치하기 (1) | 2024.01.07 |
안드로이드 스튜디오 SDK 타겟 변경하는 방법 (Failed to Find target with hash string android-21) (0) | 2023.12.08 |
안드로이드스튜디오(AndroidStudio) Emulator: emulator: WARNING: EmulatorService.cpp:448: Cannot find certfile 오류 (1) | 2023.11.16 |
안드로이드 스튜디오 AVD is already running 오류 해결하기 (1) | 2023.11.12 |