<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppMigrationKit",
  "identifier" : "/documentation/AppMigrationKit/AppMigrationTester",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AppMigrationKit"
    ],
    "preciseIdentifier" : "s:15AppMigrationKit0aB6TesterC"
  },
  "title" : "AppMigrationTester"
}
-->

# AppMigrationTester

A test-only type your app uses to test app migration extensions.

```
actor AppMigrationTester
```

## Overview

Use this type in unit tests that your containing app hosts.
Calling the tester from your unit tests allows you to communicate with your app migration extension to valdiate your migration code.

In your tests, create an instance of `AppMigrationTester`, then access its [`exportController`](/documentation/AppMigrationKit/AppMigrationTester/exportController) and [`importController`](/documentation/AppMigrationKit/AppMigrationTester/importController) properties to exercise export and import functionality, respectively.

> Warning: Use `AppMigrationTester` only in unit tests, not in production code. The tester doesn’t operate in a production environment.

## Topics

### Creating a tester instance

[`init(platform: MigrationPlatform) async throws`](/documentation/AppMigrationKit/AppMigrationTester/init(platform:))

Creates a tester instance for migrating to or from the specified platform.

### Testing export

[`var exportController: AppMigrationTester.AppExportController`](/documentation/AppMigrationKit/AppMigrationTester/exportController)

An instance of the controller object you use to test your export code.

[`class AppExportController`](/documentation/AppMigrationKit/AppMigrationTester/AppExportController)

A class you use to test your extension’s export code.

### Testing import

[`var importController: AppMigrationTester.AppImportController`](/documentation/AppMigrationKit/AppMigrationTester/importController)

An instance of the controller object you use to test your import code.

[`class AppImportController`](/documentation/AppMigrationKit/AppMigrationTester/AppImportController)

A class you use to test your extension’s import code.

### Supporting types

[`struct DeviceToDeviceExportProperties`](/documentation/AppMigrationKit/AppMigrationTester/DeviceToDeviceExportProperties)

Properties that describe the result of a device-to-device export.

[`struct ResourcesExportResult`](/documentation/AppMigrationKit/AppMigrationTester/ResourcesExportResult)

The result of exporting resources to another device.

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Actor`](/documentation/Swift/Actor)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)