Mục đích của chú thích @SmallTest, @MediumTest và @LargeTest trong Android là gì?


99

Tôi mới sử dụng Android và tôi đã xem mã mẫu bằng cách sử dụng các chú thích này. Ví dụ:

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

Chú thích đó đạt được điều gì?

Câu trả lời:


9

Như một phần bổ sung cho câu trả lời của Davidann và chủ yếu là câu hỏi của OP trong phần bình luận:

Trong bối cảnh của đoạn mã trên, nó có thực sự LÀM bất cứ điều gì ngoại trừ việc để lại ghi chú cho các nhà phát triển khác không? Nó có thực thi bất cứ điều gì không? Có bất kỳ công cụ nào sử dụng chú thích này không? Mục đích của nó trong phát triển Android là gì?

Bạn có thể chạy một nhóm các bài kiểm tra được chú thích bằng chú thích cụ thể.

Từ tài liệu AndroidJUnitRunner :

Chạy một kích thước thử nghiệm cụ thể, tức là được chú thích bằng SmallTest hoặc MediumTest hoặc LargeTest :

adb shell am cụ -w -e kích thước [nhỏ | vừa | lớn] com.android.foo/android.support.test.runner.AndroidJUnitRunner

Bạn cũng có thể thiết lập các thông số đó thông qua gradle:


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

Qua gradle:

-Pandroid.testInstrumentationRunnerArguments.size=small

Xem bài đăng trên blog của Doug Stevenson cũng như bài đăng trên blog này để biết thêm chi tiết.


OK, tóm lại là tôi chỉ có thể chạy bộ thử nghiệm @SmallTest với adb shell am instrument -w -e size small com.android.foo/android.support.test.runner.AndroidJUnitRunner; cảm ơn
kosiara - Bartosz Kosarzycki

Làm cách nào để xác định chú thích trong lệnh gradle? Ví dụ: một cái gì đó như:./gradlew connectedDebugAndroidTest -size MediumTest
Mr-IDE

@ Mr-IDE, bạn đã có câu trả lời chưa?
John

138

Bài đăng trên blog này giải thích nó tốt nhất. Về cơ bản, nó là như sau:

biểu đồ thử nghiệm

  1. Nhỏ: thử nghiệm này không tương tác với bất kỳ hệ thống tệp hoặc mạng nào.
  2. Phương tiện: Truy cập hệ thống tệp trên hộp đang chạy thử nghiệm.
  3. Lớn: Truy cập hệ thống tệp bên ngoài, mạng, v.v.

Theo blog Nhà phát triển Android , một bài kiểm tra nhỏ sẽ có thời gian <100ms, bài kiểm tra trung bình <2s và bài kiểm tra lớn <120s.

Xem trang này (tìm kiếm "@SmallTest") về cách chỉ định thử nghiệm nào được chạy.


13
Tôi hiểu rồi (và nhớ đã đọc bài báo đó tháng trước). Nhưng trong bối cảnh của đoạn mã trên, nó có thực sự LÀM được gì không ngoại trừ việc để lại ghi chú cho các nhà phát triển khác? Nó có thực thi bất cứ điều gì không? Có bất kỳ công cụ nào sử dụng chú thích này không? Mục đích của nó trong phát triển Android là gì?
Eric Palakovich Carr

3
@Eric Android TestRunner cho phép bạn chỉ định kích thước thử nghiệm sẽ chạy.
Cheryl Simon

7
Có một blog mới hơn từ Google về vấn đề này: plus.google.com/+AndroidDevelopers/posts/TPy1EeSaSg8
k29

1
@SmallTest bị phản đối
Neon Warge

1
@NeonWarge sử dụng import android.support.test.filters. [Nhỏ] Thử nghiệm;
Alexander Sidikov Pfeif

1

Bạn cũng có thể chú thích các bài kiểm tra đơn vị POJO bằng @Category(MediumTest.class)hoặc @Category(LargeTest.class), v.v. bằng cách xác định Danh mục của riêng bạn - xem repo danh mục thử nghiệm để biết ví dụ

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.