programing

@SmallTest, @Medium의 목적은 무엇입니까?Android에서 테스트 및 @LargeTest 주석을 사용하시겠습니까?

goodjava 2023. 2. 3. 20:09

@SmallTest, @Medium의 목적은 무엇입니까?Android에서 테스트 및 @LargeTest 주석을 사용하시겠습니까?

Android를 처음 사용하는데, 이 주석을 사용한 예제 코드를 본 적이 있습니다.예를 들어 다음과 같습니다.

@SmallTest
public void testStuff() {
    TouchUtils.tapView(this, anEditTextView);
    sendKeys("H E L P SPACE M E PERIOD");
    assertEquals("help me.", anEditTextView.getText().toString());
}

그 주석은 무엇을 달성합니까?

이 블로그 게시물이 가장 잘 설명해 줍니다.기본적으로 다음과 같습니다.

테스트 차트

  1. 소형: 이 테스트는 파일 시스템 또는 네트워크와 상호 작용하지 않습니다.
  2. 매체: 테스트를 실행 중인 상자에서 파일 시스템에 액세스합니다.
  3. Large: 외부 파일 시스템, 네트워크 등에 액세스합니다.

Android Developers 블로그에 따르면 소규모 테스트는 100밀리초 미만, 중간 테스트는 2초 미만, 대규모 테스트는 120초 미만이어야 합니다.

azizbekian의 답변은 테스트를 실행할 때 주석을 사용하는 방법을 보여줍니다.

또한오래된 페이지에는 더 많은 정보가 있습니다.구체적으로는,am instrument을 가지고 놀다.adb shell관련 부분은 다음과 같습니다.


am 계측기 옵션

am instrument툴이 테스트 옵션을 전달합니다.InstrumentationTestRunner또는 -e 플래그를 사용하여 다음 구문을 사용하여 키와 값의 페어 형식의 서브클래스를 지정합니다.

-e <key> <value>

여러 값을 사용할 수 있는 키도 있습니다.쉼표로 구분된 목록에서 여러 값을 지정합니다.예를 들어, 이 호출은InstrumentationTestRunner에 복수의 값을 나타냅니다.package키:

$ adb shell am instrument -w -e package com.android.test.package1,com.android.test.package2 \
> com.android.test/android.test.InstrumentationTestRunner

다음 표에서는 키와 값의 쌍과 그 결과에 대해 설명합니다.표 뒤에 있는 사용상의 주의사항을 확인해 주세요.

열쇠 가치 묘사
크기 [작은 | 중간 | 큰 ] 크기별로 주석이 달린 테스트 방법을 실행합니다.주석은 @SmallTest, @Medium입니다.테스트 및 @LargeTest.

따라서 위의 내용을 읽으면 다음과 같은 작은 테스트를 지정할 수 있습니다.

$ adb shell am instrument -w \
>   -e package com.android.test.package1,com.android.test.package2 \
>   -e size small \
>  com.android.test/android.test.InstrumentationTestRunner

Davidann의 답변과 주로 OP의 코멘트 질문에 덧붙여 다음과 같이 답합니다.

위의 코드와 관련하여 다른 개발자에게 메모를 남기는 것 외에 실제로 어떤 작업을 수행합니까?강제하는 게 있나요?이 주석을 활용한 툴이 있습니까?안드로이드 개발의 목적은 무엇입니까?

특정 주석으로 주석이 달린 테스트 그룹을 실행할 수 있습니다.

Android에서JUnitRunner 문서:

특정 크기의 테스트 실행(Small Test 또는 Medium 주석 포함)테스트 또는 대규모 테스트:

adb shell am instrument - w - e size [ small | medium | large ]com . Android . foo / Android . support . test . runner . Android JUnit Runner

그라들을 통해 이러한 매개 변수를 설정할 수도 있습니다.


    android {
        ...
        defaultConfig {
            ...
            testInstrumentationRunnerArgument 'size', 'Large'
        }
    }

그라들 경유:

-Pandroid.testInstrumentationRunnerArguments.size=small

자세한 내용은 Doug Stevenson 블로그 게시물 및 이 블로그 게시물을 참조하십시오.

에 POJO를 사용하여 을 달 .@Category(MediumTest.class) ★★★★★★★★★★★★★★★★★」@Category(LargeTest.class)독자적인 카테고리를 정의함으로써 등 - 예에 대해서는 test-categories repo를 참조해 주십시오.

언급URL : https://stackoverflow.com/questions/4671923/what-is-the-purpose-of-smalltest-mediumtest-and-largetest-annotations-in-an