Android Studio에서 테스트를 생성하려면 어떻게해야합니까? 한 Android Studio를 방금 다운로드했습니다. 어떻게 테스트를

Intellij Idea를 기반으로 한 Android Studio를 방금 다운로드했습니다.

어떻게 테스트를 만들까요?

테스트 모듈을 만드는 옵션이 있지만 이것은 아무것도하지 않는 것 같으며 src로 새 프로젝트를 만듭니다.

또한 기존 클래스에 대한 단위 테스트를 만들 수있는 단축키 CTRL + AlT + T를 눌러 보았지만 현재 프로젝트에 배치하려는 것 같습니다. 물론 이것은 TDD에 도움이되지 않습니다

누구든지 여기에 경험이 있습니까?



답변

이 답변은 Android 테스트를 막 시작하는 사람들을위한 것입니다. 테스트가 어떻게 작동하는지 확인하는 데 도움이되는 두 가지 간단한 예를 제공하겠습니다. 다음 10 분 동안 계속 진행하면 자신의 앱에 테스트를 추가 할 준비가 된 것입니다. 얼마나 쉬운 지 놀랄 것입니다. 나는 확실히했다.

Android 테스트 소개

수행 할 테스트에는 두 가지 유형이 있습니다.

  • 로컬 단위 테스트. 이는 JVM (Java Virtual Machine)에서 로컬로 실행됩니다. 그들은 현지이기 때문에 빠릅니다. 이를 사용하여 Android API가 아닌 Java 만 필요한 코드 부분을 테스트 할 수 있습니다. (때때로 로컬에서 더 많은 것을 테스트하기 위해 가짜 API 객체를 만들 수 있습니다. 이것을 mocking 이라고합니다 . mock Context이 예시입니다.)
  • 계측 테스트. 이러한 테스트는 실제 기기 또는 에뮬레이터에서 실행됩니다. 그것은 로컬 테스트보다 느리게 만듭니다. 그러나 전체 Android API를 사용할 수 있기 때문에 더 유연합니다.

새 프로젝트를 생성하면 다음과 같은 기본 폴더가 표시됩니다.

여기에 이미지 설명 입력

모든 것이 이미 거기에 있으며 테스트를 만들기를 기다리고 있습니다. 이미 모든 설정이 완료되었습니다!

로컬 단위 테스트를 만드는 방법

ExampleUnitTest위 이미지에 표시된 파일을 엽니 다 . 다음과 같이 보일 것입니다.

public class ExampleUnitTest {
    @Test
    public void addition_isCorrect() throws Exception {
        assertEquals(4, 2 + 2);
    }
}

모든 테스트를 실행하려면 이중 녹색 화살표를 누르고 하나만 실행하려면 단일 녹색 화살표를 누릅니다. (이 경우 하나의 테스트 만 있으므로 둘 다 동일한 작업을 수행합니다.)

여기에 이미지 설명 입력

통과해야합니다 ( 이 답변을 읽을 때 2 + 2여전히있는 한 4). 축하합니다. 첫 번째 테스트를 실행했습니다!

나만의 테스트 만들기

우리 자신의 테스트를 작성합시다. 먼저 테스트 할 내용이 있도록이 클래스를 기본 앱 프로젝트에 추가합니다.

public class MyClass {
    public int add(int a, int b) {
        return a + b;
    }
}

이제 addition_isCorrect()테스트 클래스 의 메서드를 다음 코드와 같이 변경 하거나 다른 이름을 가진 다른 메서드를 추가합니다.

public class ExampleUnitTest {
    @Test
    public void addition_isCorrect() throws Exception {
        MyClass myClass = new MyClass();
        int result = myClass.add(2, 2);
        int expected = 4;
        assertEquals(expected, result);
    }
}

다시 실행하면 통과하는 것을 볼 수 있습니다. 축하합니다. 첫 번째 테스트를 만들었습니다! (글쎄요, 기술적으로는 제 것이었지만, 충분히 가까워요. 제 것은 당신 것입니다.)

계측 테스트를 만드는 방법

ExampleInstrumentedTest파일을 엽니 다 . 다음과 같이 보일 것입니다.

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() throws Exception {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getTargetContext();

        assertEquals("com.example.myapp", appContext.getPackageName());
    }
}

녹색 버튼 중 하나를 다시 누르십시오.

여기에 이미지 설명 입력

실제 장치가 연결되어 있거나 에뮬레이터가 설정되어있는 한, 장치를 시작하고 앱을 실행해야합니다. 축하합니다. 첫 번째 계측 테스트를 실행했습니다!

나만의 테스트 만들기

계측 테스트는 Espresso 를 사용 하여 테스트를 실행합니다. 앱을 테스트 할 수있는 작은 로봇 사용자와 비슷합니다. 버튼을 누르거나 TextView의 속성을 읽는 것과 같은 작업을 수행하도록 지시 할 수 있습니다.

직접 테스트하는 방법에 대한 지침을 작성할 수 있지만 이제 막 시작 했으므로 자동 기록 기능을 사용하겠습니다 . 아주 간단합니다.

먼저 UI에 버튼을 추가하여 작업 할 수 있도록합니다. 나는 이걸했다:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.myapp.MainActivity">

    <Button
        android:id="@+id/myButton"
        android:text="Click me"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</android.support.constraint.ConstraintLayout> 

그런 다음 메뉴에서 Run> Record Espresso Test 를 누릅니다.

여기에 이미지 설명 입력

시작 후 에뮬레이터에서 버튼을 클릭 한 다음 완료하려면 Record 대화 상자에서 OK를 선택합니다. 다음 테스트 코드가 자동으로 생성됩니다.

@LargeTest
@RunWith(AndroidJUnit4.class)
public class MainActivityTest {

    @Rule
    public ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule<>(MainActivity.class);

    @Test
    public void mainActivityTest() {
        ViewInteraction appCompatButton = onView(
                allOf(withId(R.id.myButton), withText("Click me"), isDisplayed()));
        appCompatButton.perform(click());
    }
}

큰! 방금 첫 번째 계측 테스트를 만들었습니다! 매우 쉬웠습니다. 실제 테스트로 만들려면 어설 션을 추가해야 할 것입니다.하지만 그것은 레코더로도 쉽게 할 수 있습니다. 시계 동영상을 좀 더 깊이 이동합니다.

추가 연구

먼저 비디오를 본 다음 설명서를 읽었습니다. 모두 매우 도움이됩니다. 마지막 링크는 테스트 할 항목을 선택할 때 고려해야 할 몇 가지 중요한 사항을 다루는 기사 시리즈입니다.


답변

편집 : 0.1.8부터 이것은 IDE에서 지원됩니다 . 아래 지침을 사용하는 대신 거기에있는 지침을 따르십시오.

다음 가이드 안드로이드 Gradle을 플러그인 사용자 내가 새로 생성 된 프로젝트에서 다음 단계를 수행하여 명령 줄에서 작업 테스트를 얻을 수 있었다 (I은 기본 ‘com.example.myapplication’패키지를 사용) :

  1. 테스트를 위해 src / instrumentTest / java 디렉토리를 추가하십시오.
  2. com.example.myapplication.test 패키지에 테스트 클래스 (ActivityTestCase 확장)를 추가하십시오.
  3. 가상 장치 시작
  4. 명령 줄 (MyApplicationProject / MyApplication 디렉터리)에서 ‘../gradlew connectedInstrumentTest’명령을 사용합니다.

이것은 내 테스트를 실행하고 테스트 결과를 MyApplicationProject / MyApplication / build / reports / instrumentTests / connected에 배치했습니다. 저는 Android 앱을 처음 테스트했지만 제대로 작동하는 것 같습니다.

IDE 내에서 동일한 테스트 클래스를 시도하고 실행할 수 있습니다. 당신은 필요합니다

  1. 빌드 .gradle을 업데이트하여 Maven Central을 저장소로 나열
  2. build.gradle 업데이트는 instrumentTestCompile 종속성으로 JUnit 3.8을 추가합니다 (예 : instrumentTestCompile ‘junit : junit : 3.8’).
  3. ‘프로젝트 구조’에서 수동으로 JUnit을 종속성 순서의 첫 번째로 이동하십시오.

그러나 이것은 실패합니다 (테스트를 실행할 때 사용 된 클래스 경로에 테스트 출력 디렉토리가 없음). 그러나 Android 특정 테스트 러너가 필요하다는 것을 이해하고 있기 때문에 이것이 작동하는지 확실하지 않습니다.


답변

gradle.build 파일 을 사용하는 것이 좋습니다 .

  1. 테스트를 위해 src / androidTest / java 디렉터리를 추가합니다 ( Chris 가 설명을 시작하는 것처럼 )

  2. gradle.build 파일을 열고 거기에 지정하십시오.

    android {
    
        compileSdkVersion rootProject.compileSdkVersion
        buildToolsVersion rootProject.buildToolsVersion
    
        sourceSets {
    
            androidTest {
                java.srcDirs = ['androidTest/java']
            }
        }
    }
  3. “Sync Project with Gradle file”(상단 패널)을 누릅니다. 이제 “java”폴더 ( “androidTest”내부)가 녹색으로 표시됩니다.

  4. 이제 모든 테스트 파일을 생성하고 실행할 수 있습니다.


답변

Rex St John 의이 게시물 은 Android 스튜디오를 사용한 단위 테스트에 매우 유용 하다고 생각 합니다 .


(출처 : rexstjohn.com )


답변

Android Studio v.2.3.3

테스트 할 코드 컨텍스트를 강조 표시하고 핫키를 사용하십시오. CTRL+ SHIFT+T

대화 인터페이스를 사용하여 설정을 완료하십시오.

테스트 프레임 워크는 최상의 결과를 위해 프로젝트 패키지 레이아웃을 미러링해야하지만 올바른 디렉터리 및 빌드 설정이있는 경우 사용자 지정 테스트를 수동으로 만들 수 있습니다.


답변

지금은 (스튜디오 0.61) 적절한 프로젝트 구조를 유지하는 것으로 충분합니다. Eclipse에서와 같이 별도의 테스트 프로젝트를 만들 필요가 없습니다 (아래 참조).

테스트 구조


답변

Android Studio는 계속 발전하므로 위의 응답은 결국 더 이상 적용되지 않습니다. 현재 Android Studio 1.2.1.1 버전의 경우 테스트에 대한 멋진 자습서가 있습니다.

http://evgenii.com/blog/testing-activity-in-android-studio-tutorial-part-1/