XCTHealthKit 是一个基于 XCTest 的框架,用于测试在 iPhone 模拟器上使用 Apple Health App 创建 HealthKit 样本。
您可以在 UI 测试中使用 XCTHealthKit。 API 文档 提供了 XCTHealthKit 公共接口的详细概述。
该框架具有以下功能
使用 XCTestCase.launchAndAddSample(healthApp:_:) throws
函数,并传入一个 NewHealthSampleInput
实例,以使用 Apple Health App 添加模拟数据
import XCTest
import XCTHealthKit
class HealthKitUITests: XCTestCase {
func testAddMockData() throws {
let healthApp = XCUIApplication.healthApp
try launchAndAddSample(healthApp: healthApp, .steps(value: 71))
try launchAndAddSample(healthApp: healthApp, .electrocardiogram())
}
}
或者,可以使用 XCTestCase.launchAndAddSamples(healthApp:_:) throws
函数在单个调用中添加多个样本
import XCTest
import XCTHealthKit
class HealthKitUITests: XCTestCase {
func testAddMockData() throws {
let healthApp = XCUIApplication.healthApp
try launchAndAddSamples(healthApp: healthApp, [
.activeEnergy(),
.electrocardiogram(),
.pushes(value: 117),
.restingHeartRate(value: 91),
.steps()
])
}
}
您可以使用 XCUIApplication
的 handleHealthKitAuthorization() throws
函数来处理 HealthKit 授权表
import XCTest
import XCTHealthKit
class HealthKitUITests: XCTestCase {
func testHandleTheHealthKitAuthorizationSheet() throws {
let app = XCUIApplication()
app.launch()
app.buttons["Request HealthKit Authorization"].tap()
try app.handleHealthKitAuthorization()
}
}
可以使用 Swift Package Manager 将该项目添加到您的 Xcode 项目或 Swift 包中。
Xcode: 对于 Xcode 项目,请按照 将包依赖项添加到您的应用程序 中的说明进行操作。
Swift 包: 您可以遵循 Swift Package Manager 关于定义依赖项的文档,将此项目作为依赖项添加到您的 Swift 包中。
本项目基于 MIT 许可证。 有关更多信息,请参阅 许可证。
本项目是斯坦福大学斯坦福拜尔斯生物设计中心的一部分。 有关所有 XCTHealthKit 贡献者的完整列表,请参阅 CONTRIBUTORS.md。