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 chế độ xem hoặc cần 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, chẳng hạn như liệu các phần tử có nằm trong danh sách hay không hoặc liệu các hộp có được đánh dấu hay không, bằng cách sử dụng trình so khớp như hasContentDescriptionEqualTo
hoặc isChecked
.
API này có kích thước nhỏ và yêu cầu ít thiết lập hơn, vì vậy, bạn có thể thực hiện quy trình phát triển dựa trên kiểm thử khi phát triển từng phần của tiện ích và sắp xếp các phần đó để cải thiện khả năng tái sử dụng 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.
Cấu trúc kiểm thử
Sắp xếp các hàm có khả năng kết hợp bên ngoài lớp GlanceAppWidget
để cho phép tái sử dụng mã và kiểm thử đơn vị. Giảm độ phức tạp của các đơn vị đang kiểm thử càng nhiều càng tốt.
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 ngữ cảnh và kích thước cho kiểm thử
Nếu hàm có khả năng kết hợp của bạn đọc ngữ cảnh bằng phương thức LocalContext.current()
, thì bạn phải đặt ngữ cảnh bằng phương thức LocalContext.current()
.
Nếu không, bạn có thể bỏ qua bước này.
Bạn có thể sử dụng bất kỳ khung kiểm thử đơn vị Android nào dựa trên JVM, 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 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 một 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 giá trị 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 để kiểm thử 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ó thể xuất hiện và kiểm thử cho các kích thước đó. - Nếu AppWidget sử dụng
sizeMode == Responsive
, bạn có thể đặt giá trị 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ờ kiểm thử là 1 giây, nhưng bạn có thể truyền thời lượng tuỳ chỉnh làm đối số cho phương thức runGlanceAppWidgetUnitTest
nếu cơ sở hạ tầng kiểm thử của bạn thực thi 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
.