Câu trả lời này dành cho những người mới bắt đầu thử nghiệm Android. Tôi sẽ cung cấp hai ví dụ đơn giản để giúp bạn thấy cách kiểm tra hoạt động. Nếu bạn theo dõi trong 10 phút tiếp theo, bạn sẽ được thiết lập để bắt đầu thêm các thử nghiệm vào ứng dụng của riêng mình. Tôi nghĩ bạn sẽ ngạc nhiên vì nó dễ dàng như thế nào. Tôi chắc chắn đã.
Giới thiệu về Thử nghiệm Android
Có hai loại bài kiểm tra khác nhau mà bạn sẽ làm.
- Kiểm tra đơn vị địa phương. Chúng được chạy cục bộ trên JVM (Máy ảo Java). Vì họ là người địa phương, họ nhanh chóng. Bạn có thể sử dụng chúng để kiểm tra các phần mã của mình chỉ cần Java chứ không cần API Android. (Đôi khi bạn có thể tạo một đối tượng API giả để kiểm tra cục bộ nhiều thứ hơn. Đây được gọi là chế độ giả. Một bản giả
Context
là một ví dụ.)
- Kiểm tra công cụ. Các bài kiểm tra này được chạy trên thiết bị thực hoặc trong trình giả lập. Điều đó làm cho chúng chậm hơn so với các thử nghiệm địa phương. Tuy nhiên, chúng linh hoạt hơn vì bạn có sẵn API Android đầy đủ cho mình.
Tạo một dự án mới và bạn sẽ thấy các thư mục mặc định sau.
Mọi thứ đã ở đó và đang chờ bạn tạo các bài kiểm tra của mình. Tất cả đã được thiết lập rồi!
Cách tạo các bài kiểm tra đơn vị cục bộ
Mở ExampleUnitTest
tệp được hiển thị trong hình trên. nó sẽ trông giống như thế này:
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}
Nhấn vào mũi tên đôi màu xanh lục để chạy tất cả các bài kiểm tra hoặc mũi tên màu xanh lá cây đơn để chỉ chạy một bài kiểm tra. (Trong trường hợp này chỉ có một bài kiểm tra nên cả hai đều làm điều tương tự.)
Nó sẽ trôi qua (miễn 2 + 2
là vẫn còn 4
khi bạn đang đọc câu trả lời này). Xin chúc mừng, bạn vừa chạy thử nghiệm đầu tiên của mình!
Làm bài kiểm tra của riêng bạn
Hãy viết thử nghiệm của riêng chúng ta. Trước tiên, hãy thêm lớp này vào dự án ứng dụng chính của bạn để chúng tôi có thứ gì đó để kiểm tra:
public class MyClass {
public int add(int a, int b) {
return a + b;
}
}
Bây giờ thay đổi addition_isCorrect()
phương thức trong lớp thử nghiệm để giống như đoạn mã sau (hoặc chỉ cần thêm một phương thức khác có tên khác):
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);
}
}
Chạy lại và bạn sẽ thấy nó trôi qua. Xin chúc mừng, bạn vừa tạo thử nghiệm đầu tiên của riêng mình! (Chà, về mặt kỹ thuật thì tôi đoán nó là của tôi, nhưng, này, đủ gần rồi. Cái của tôi là của bạn.)
Cách tạo các bài kiểm tra công cụ
Mở ExampleInstrumentedTest
tệp. nó sẽ trông giống như thế này:
@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());
}
}
Nhấn lại một trong các nút màu xanh lục đó.
Miễn là bạn đã kết nối thiết bị thực hoặc thiết lập trình giả lập, thì thiết bị đó sẽ phải khởi động và chạy ứng dụng của bạn. Xin chúc mừng, bạn vừa chạy thử nghiệm công cụ đầu tiên của mình!
Làm bài kiểm tra của riêng bạn
Các bài kiểm tra công cụ sử dụng Espresso để chạy các bài kiểm tra. Nó giống như người dùng robot nhỏ của riêng bạn mà bạn có thể thử nghiệm ứng dụng của mình. Bạn có thể yêu cầu nó làm điều gì đó như nhấn nút hoặc đọc các thuộc tính của TextView.
Bạn có thể viết hướng dẫn cách làm bài kiểm tra bằng tay, nhưng vì chúng ta mới bắt đầu nên hãy sử dụng chức năng ghi tự động . Nó siêu đơn giản.
Trước tiên, hãy thêm một nút vào giao diện người dùng của bạn để chúng tôi có thứ gì đó để làm việc. Tôi đã làm điều này:
<?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>
Sau đó nhấn Run> Record Espresso Test trong menu.
Sau khi nó khởi động, hãy nhấp vào nút trong trình giả lập và sau đó để kết thúc, hãy chọn OK trên hộp thoại Record. Nó sẽ tự động tạo mã kiểm tra sau.
@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());
}
}
Tuyệt quá! Bạn vừa tạo cho mình bài kiểm tra công cụ đầu tiên! Điều đó thật dễ dàng. Bạn có thể nên thêm một xác nhận để biến nó trở thành một bài kiểm tra thực sự, nhưng điều đó cũng khá dễ thực hiện với máy ghi âm. Xem video này để đi sâu hơn một chút.
Học cao hơn
Tôi sẽ xem video trước và sau đó đọc qua tài liệu. Tất cả đều khá hữu ích. Liên kết cuối cùng là một loạt các bài báo bao gồm một số điều quan trọng cần suy nghĩ khi chọn những gì để kiểm tra.