XCTHealthKit is an XCTest-based framework to test the creation of HealthKit samples using the Apple Health App on the iPhone simulator.
You can use XCTHealthKit in your UI tests. The API documentation provides a detailed overview of the public interface of XCTHealthKit.
The framework has the following functionalities:
Use the XCTestCase
's exitAppAndOpenHealth(_: HealthAppDataType) throws
function passing in an HealthAppDataType
instance to add mock data using the Apple Health app:
import XCTest
import XCTHealthKit
class HealthKitUITests: XCTestCase {
func testAddMockDataUsingTheAppleHealthApp() throws {
try exitAppAndOpenHealth(.electrocardiograms)
try exitAppAndOpenHealth(.steps)
try exitAppAndOpenHealth(.pushes)
try exitAppAndOpenHealth(.restingHeartRate)
try exitAppAndOpenHealth(.activeEnergy)
}
}
You can use the XCUIApplication
's handleHealthKitAuthorization() throws
function to handle the HealthKit authorization sheet:
import XCTest
import XCTHealthKit
class HealthKitUITests: XCTestCase {
func testHandleTheHealthKitAuthorizationSheet() throws {
let app = XCUIApplication()
app.launch()
app.buttons["Request HealthKit Authorization"].tap()
try app.handleHealthKitAuthorization()
}
}
The project can be added to your Xcode project or Swift Package using the Swift Package Manager.
Xcode: For an Xcode project, follow the instructions on Adding package dependencies to your app.
Swift Package: You can follow the Swift Package Manager documentation about defining dependencies to add this project as a dependency to your Swift Package.
This project is licensed under the MIT License. See Licenses for more information.
This project is developed as part of the Stanford Byers Center for Biodesign at Stanford University. See CONTRIBUTORS.md for a full list of all XCTHealthKit contributors.