Contents

stanfordbdhg/xcthealthkit

This source file is part of the XCTHealthKit open source project

How To Use XCTHealthKit

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:

Add Mock Data Using the Apple Health App

Use the XCTestCase.launchAndAddSample(healthApp:_:) throws function passing in an NewHealthSampleInput instance to add mock data using the 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())
    }
}

Alternatively, the XCTestCase.launchAndAddSamples(healthApp:_:) throws function can be used to add multiple samples in a single call:

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()
        ])
    }
}

Handle the HealthKit Authorization Sheet

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()
    }
}

Installation

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.

License

This project is licensed under the MIT License. See Licenses for more information.

Contributors

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.

[Stanford Byers Center for Biodesign Logo] [Stanford Byers Center for Biodesign Logo]

Package Metadata

Repository: stanfordbdhg/xcthealthkit

Default branch: main

README: README.md