API kiểm thử đơn vị Glance cho phép bạn kiểm thử mã Glance mà không cần tăng cường khung hiển thị
hoặc cần một trình tự động hoá giao diện người dùng. Ví dụ: API kiểm thử đơn vị cho phép bạn xác minh
các điều kiện cụ thể, chẳng hạn như các phần tử có trong danh sách hay các hộp
được chọn bằng cách sử dụng trình so khớp như hasContentDescriptionEqualTo
hoặc isChecked
.
API này nhẹ và cần ít thiết lập hơn nên bạn có thể thực hiện theo hướng thử nghiệm trong quá trình phát triển từng phần của tiện ích con và sắp xếp chúng cải thiện khả năng sử dụng lại mã.
Thiết lập
Các phần phụ thuộc cần thiết để sử dụng thư viện kiểm thử đơn vị được hiển thị trong các ví dụ sau:
// Other Glance and Compose runtime dependencies.
...
testImplementation 'androidx.glance:glance-testing:1.1.0'
testImplementation 'androidx.glance:glance-AppWidget-testing:1.1.0'
testImplementation 'org.robolectric:robolectric:4.11.1'
...
// You may include additional dependencies, such as Robolectric, if your test
// needs to set a LocalContext.
Kiểm thử cấu trúc
Sắp xếp các hàm có khả năng kết hợp bên ngoài lớp GlanceAppWidget
để bật
sử dụng lại mã và kiểm thử đơn vị. Giảm độ phức tạp của các đơn vị đang được kiểm thử dưới dạng
nhiều nhất có thể.
class MyGlanceComposableTest {
@Test
fun myNewsItemComposable_largeSize_hasAuthorAsSubtitle() = runGlanceAppWidgetUnitTest {
// Prepare inputs and state
setAppWidgetSize(100.dp, 100.dp)
// Set the composable under test
provideComposable {
MyNewsItemComposable(TEST_NEWS_ITEM)
}
// Perform assertions
onNode(hasTestTag("subTitle"))
.assertHasText(TEST_NEWS_ITEM.authorName)
}
}
Đặt bối cảnh và quy mô cho kiểm thử
Nếu hàm có khả năng kết hợp đọc ngữ cảnh bằng cách sử dụng LocalContext.current()
bạn phải đặt ngữ cảnh bằng cách sử dụng phương thức LocalContext.current()
.
Nếu không, bước này là bước không bắt buộc.
Bạn có thể sử dụng bất kỳ khung kiểm thử đơn vị Android dựa trên JVM nào, chẳng hạn như Roboletric, để cung cấp ngữ cảnh.
Nếu hàm có khả năng kết hợp truy cập vào LocalSize
, hãy đặt kích thước dự kiến
cho bài kiểm thử trước khi cung cấp một thành phần kết hợp trong kiểm thử. Kích thước mặc định là
349 dp x 455 dp, tương đương với tiện ích 5x4 hiển thị trên thiết bị Pixel 4
ở chế độ dọc.
- Nếu AppWidget sử dụng
sizeMode == Single
, bạn có thể đặt thuộc tính này thànhminWidth
vàminHeight
trong tệpinfo.xml
của tiện ích. - Nếu AppWidget sử dụng
sizeMode == Exact
, bạn có thể xác định kích thước để thử nghiệm theo cách tương tự như cách bạn xác định kích thước cho tiện ích và xác định kích thước ngang và dọc mà tiện ích của bạn có thể xuất hiện trên đó và thử nghiệm cho họ. - Nếu AppWidget sử dụng
sizeMode == Responsive
, bạn có thể đặt thuộc tính này thành một trong các kích thước trong danh sách mà bạn cung cấp khi chỉ địnhsizeMode
.
Thời lượng mặc định cho thời gian chờ thử nghiệm là 1 giây, nhưng bạn có thể chuyển thời gian chờ tuỳ chỉnh
làm đối số cho phương thức runGlanceAppWidgetUnitTest
nếu kiểm thử của bạn
cơ sở hạ tầng thực thi một thời gian chờ khác.
Để biết thêm thông tin và mã mẫu, hãy xem tài liệu tham khảo về
runGlanceAppWidgetUnitTest
.