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/