Bạn nên triển khai các kiểm thử máy chủ lưu trữ lưu trữ Java (JAR) để cung cấp phạm vi bao phủ mã hoàn chỉnh cho phần mềm của mình. Làm theo hướng dẫn để Tạo các chương trình kiểm thử đơn vị cục bộ. Viết các bài kiểm thử đơn vị nhỏ để xác thực một hàm cụ thể và không làm gì khác.
Ví dụ
Tệp Blueprint sau đây cung cấp một ví dụ đơn giản về kiểm thử máy chủ lưu trữ JAR Hello World để sao chép và điều chỉnh cho phù hợp với nhu cầu của bạn: platform_testing/tests/example/jarhosttest/Android.bp
Điều này tương ứng với mã kiểm thử thực tế có tại: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
Để thuận tiện, chúng tôi có đính kèm ảnh chụp nhanh của tệp Blueprint tại đây:
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
Khai báo java_test_host
ở đầu cho biết đây là một kiểm thử lưu trữ JAR. Hãy xem ví dụ về cách sử dụng trong:
frameworks/base/tools/powermodel/Android.bp
Cài đặt
Hãy xem phần giải thích về các chế độ cài đặt sau đây ở bên dưới:
Bạn phải đặt chế độ cài đặt
name
khi chỉ định loại mô-đunjava_test_host
(ở đầu khối). Chế độ cài đặt này đặt tên cho mô-đun của bạn và tệp JAR kết quả có cùng tên và hậu tố.jar
. Trong ví dụ bên dưới,JAR kiểm thử thu được có tên làHelloWorldHostTest.jar
. Ngoài ra, chế độ cài đặt này cũng xác định tên mục tiêu tạo cho mô-đun của bạn, để bạn có thể sử dụngmake [options] <HelloWorldHostTest>
để tạo mô-đun kiểm thử và tất cả các phần phụ thuộc của mô-đun đó.name: "HelloWorldHostTest",
Chế độ cài đặt
test_suites
giúp Trade Federation test harness dễ dàng phát hiện ra hoạt động kiểm thử. Bạn có thể thêm các bộ kiểm thử khác vào đây, chẳng hạn như CTS, để có thể chia sẻ kiểm thử máy chủ lưu trữ JAR.test_suites: ["general-tests"],
Chế độ cài đặt
static_libs
hướng dẫn hệ thống xây dựng kết hợp nội dung của các mô-đun được đặt tên vào APK kết quả của mô-đun hiện tại. Điều này có nghĩa là mỗi mô-đun được đặt tên dự kiến sẽ tạo ra một tệp.jar
. Nội dung của mô-đun được dùng để phân giải các tham chiếu classpath trong thời gian biên dịch và được kết hợp vào APK kết quả.static_libs: [ "junit", ],