{"abstract":[{"text":"Create and run unit tests, performance tests, and UI tests for your Xcode project.","type":"text"}],"hierarchy":{"paths":[["doc:\/\/com.apple.documentation\/documentation\/technologies"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/com.apple.xctest\/documentation\/XCTest"},"kind":"symbol","legalNotices":{"copyright":"Copyright &copy; 2026 Apple Inc. All rights reserved.","privacyPolicy":"https:\/\/www.apple.com\/privacy\/privacy-policy","termsOfUse":"https:\/\/www.apple.com\/legal\/internet-services\/terms\/site.html"},"metadata":{"availableLanguages":["de-DE","en-US","es-419","fr-FR","it-IT","ja-JP","ko-KR","pt-BR","zh-CN"],"externalID":"XCTest","modules":[{"name":"XCTest"}],"platforms":[{"beta":false,"introducedAt":"5.0","name":"xcode"}],"role":"collection","roleHeading":"Framework","symbolKind":"module","title":"XCTest"},"primaryContentSections":[{"content":[{"anchor":"overview","level":2,"text":"Overview","type":"heading"},{"inlineContent":[{"text":"Use the XCTest framework to write unit tests for your Xcode projects that integrate seamlessly with Xcode’s testing workflow.","type":"text"}],"type":"paragraph"},{"inlineContent":[{"text":"Tests assert that certain conditions are satisfied during code execution, and record test failures (with optional messages) if those conditions aren’t satisfied. Tests can also measure the performance of blocks of code to check for performance regressions.","type":"text"},{"text":" ","type":"text"},{"text":"Use XCTest in combination with ","type":"text"},{"identifier":"doc:\/\/com.apple.documentation\/documentation\/XCUIAutomation","isActive":true,"type":"reference"},{"text":" to interact with an application’s UI and validate user interaction flows. For more information, see ","type":"text"},{"identifier":"doc:\/\/com.apple.documentation\/documentation\/XCUIAutomation\/recording-ui-automation-for-testing","isActive":true,"type":"reference"},{"text":".","type":"text"}],"type":"paragraph"},{"content":[{"inlineContent":[{"text":"","type":"text"},{"text":" ","type":"text"},{"text":"Xcode 16 and later includes Swift Testing, a framework for writing unit tests that takes advantage of the powerful capabilities of the Swift programming language. Consider using Swift Testing for new unit test development and migrating existing tests as described in ","type":"text"},{"identifier":"doc:\/\/com.apple.documentation\/documentation\/Testing\/MigratingFromXCTest","isActive":true,"type":"reference"},{"text":". A test target can contain tests using both Swift Testing and XCTest, however don’t mix API from the two frameworks in the same test. Continue to use XCTest for user interface tests and ","type":"text"},{"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/performance-tests","isActive":true,"type":"reference"},{"text":".","type":"text"}],"type":"paragraph"}],"name":"Tip","style":"tip","type":"aside"}],"kind":"content"}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"topicSections":[{"anchor":"Test-cases-and-test-methods","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/defining-test-cases-and-test-methods","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTestCase","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTest"],"title":"Test cases and test methods"},{"anchor":"Test-assertions","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/boolean-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/nil-and-non-nil-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/equality-and-inequality-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/comparable-value-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/error-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/nsexception-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/unconditional-test-failures","doc:\/\/com.apple.xctest\/documentation\/XCTest\/expected-failures","doc:\/\/com.apple.xctest\/documentation\/XCTest\/methods-for-skipping-tests"],"title":"Test assertions"},{"anchor":"Asynchronous-tests","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/asynchronous-tests-and-expectations"],"title":"Asynchronous tests"},{"anchor":"UI-tests","identifiers":["doc:\/\/com.apple.documentation\/documentation\/XCUIAutomation"],"title":"UI tests"},{"anchor":"Performance-tests","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/performance-tests"],"title":"Performance tests"},{"anchor":"Activities-and-attachments","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/activities-and-attachments"],"title":"Activities and attachments"},{"anchor":"Test-execution","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/test-execution-and-observation"],"title":"Test execution"},{"anchor":"Deprecated","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/deprecated-symbols"],"title":"Deprecated"},{"anchor":"Variables","generated":true,"identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_UI_TESTING_AVAILABLE"],"title":"Variables"},{"anchor":"Functions","generated":true,"identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTAssertNoThrow(_:_:file:line:)"],"title":"Functions"}],"variants":[{"paths":["\/documentation\/xctest"],"traits":[{"interfaceLanguage":"swift"}]},{"paths":["\/documentation\/xctest"],"traits":[{"interfaceLanguage":"occ"}]}],"references":{"doc://com.apple.documentation/documentation/Testing/MigratingFromXCTest":{"abstract":[{"text":"Migrate an existing test method or test class written using XCTest.","type":"text"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/Testing\/MigratingFromXCTest","kind":"article","role":"article","title":"Migrating a test from XCTest","type":"topic","url":"\/documentation\/testing\/migratingfromxctest"},"doc://com.apple.documentation/documentation/XCUIAutomation":{"abstract":[{"text":"Replicate sequences of interactions and make sure that your app’s user interface behaves as intended.","type":"text"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/XCUIAutomation","kind":"symbol","role":"collection","title":"XCUIAutomation","type":"topic","url":"\/documentation\/xcuiautomation"},"doc://com.apple.documentation/documentation/XCUIAutomation/recording-ui-automation-for-testing":{"abstract":[{"text":"Capture and replay interaction sequences to verify your app’s behavior.","type":"text"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/XCUIAutomation\/recording-ui-automation-for-testing","images":[{"identifier":"recording-UI-automation-for-testing-PageImage-card.png","type":"card"}],"kind":"article","role":"article","title":"Recording UI automation for testing","type":"topic","url":"\/documentation\/xcuiautomation\/recording-ui-automation-for-testing"},"doc://com.apple.documentation/documentation/technologies":{"abstract":[],"identifier":"doc:\/\/com.apple.documentation\/documentation\/technologies","kind":"technologies","role":"overview","title":"Technologies","type":"topic","url":"\/documentation\/technologies"},"doc://com.apple.xctest/documentation/XCTest":{"abstract":[{"text":"Create and run unit tests, performance tests, and UI tests for your Xcode project.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest","kind":"symbol","role":"collection","title":"XCTest","type":"topic","url":"\/documentation\/xctest"},"doc://com.apple.xctest/documentation/XCTest/XCTAssertNoThrow(_:_:file:line:)":{"abstract":[{"text":"Asserts that an expression doesn’t throw an error.","type":"text"}],"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"XCTAssertNoThrow"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"T"},{"kind":"text","text":">("},{"kind":"attribute","text":"@autoclosure "},{"kind":"text","text":"() "},{"kind":"keyword","text":"throws"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"T"},{"kind":"text","text":", "},{"kind":"attribute","text":"@autoclosure "},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":", "},{"kind":"externalParam","text":"file"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s12StaticStringV","text":"StaticString"},{"kind":"text","text":", "},{"kind":"externalParam","text":"line"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Su","text":"UInt"},{"kind":"text","text":")"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTAssertNoThrow(_:_:file:line:)","kind":"symbol","role":"symbol","title":"XCTAssertNoThrow(_:_:file:line:)","type":"topic","url":"\/documentation\/xctest\/xctassertnothrow(_:_:file:line:)"},"doc://com.apple.xctest/documentation/XCTest/XCTEST_SIMULATOR_UNAVAILABLE":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCTEST_SIMULATOR_UNAVAILABLE"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTEST_SIMULATOR_UNAVAILABLE","kind":"symbol","role":"symbol","title":"XCTEST_SIMULATOR_UNAVAILABLE","type":"topic","url":"\/documentation\/xctest\/xctest_simulator_unavailable"},"doc://com.apple.xctest/documentation/XCTest/XCTIssueReference/Severity-swift.enum":{"abstract":[{"text":"An enum representing the severity of a test issue.","type":"text"}],"fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"Severity"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTIssueReference\/Severity-swift.enum","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Severity"}],"role":"symbol","title":"XCTIssueReference.Severity","type":"topic","url":"\/documentation\/xctest\/xctissuereference\/severity-swift.enum"},"doc://com.apple.xctest/documentation/XCTest/XCT_DEPRECATED_WITH_DIRECT_REPLACEMENT":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_DEPRECATED_WITH_DIRECT_REPLACEMENT"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_DEPRECATED_WITH_DIRECT_REPLACEMENT","kind":"symbol","role":"symbol","title":"XCT_DEPRECATED_WITH_DIRECT_REPLACEMENT","type":"topic","url":"\/documentation\/xctest\/xct_deprecated_with_direct_replacement"},"doc://com.apple.xctest/documentation/XCTest/XCT_DEPRECATED_WITH_REPLACEMENT":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_DEPRECATED_WITH_REPLACEMENT"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_DEPRECATED_WITH_REPLACEMENT","kind":"symbol","role":"symbol","title":"XCT_DEPRECATED_WITH_REPLACEMENT","type":"topic","url":"\/documentation\/xctest\/xct_deprecated_with_replacement"},"doc://com.apple.xctest/documentation/XCTest/XCT_DEPRECATED_WITH_SWIFT_REPLACEMENT":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_DEPRECATED_WITH_SWIFT_REPLACEMENT"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_DEPRECATED_WITH_SWIFT_REPLACEMENT","kind":"symbol","role":"symbol","title":"XCT_DEPRECATED_WITH_SWIFT_REPLACEMENT","type":"topic","url":"\/documentation\/xctest\/xct_deprecated_with_swift_replacement"},"doc://com.apple.xctest/documentation/XCTest/XCT_EXPORT":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_EXPORT"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_EXPORT","kind":"symbol","role":"symbol","title":"XCT_EXPORT","type":"topic","url":"\/documentation\/xctest\/xct_export"},"doc://com.apple.xctest/documentation/XCTest/XCT_HEADER_AUDIT_BEGIN":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_HEADER_AUDIT_BEGIN"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_HEADER_AUDIT_BEGIN","kind":"symbol","role":"symbol","title":"XCT_HEADER_AUDIT_BEGIN","type":"topic","url":"\/documentation\/xctest\/xct_header_audit_begin"},"doc://com.apple.xctest/documentation/XCTest/XCT_HEADER_AUDIT_END":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_HEADER_AUDIT_END"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_HEADER_AUDIT_END","kind":"symbol","role":"symbol","title":"XCT_HEADER_AUDIT_END","type":"topic","url":"\/documentation\/xctest\/xct_header_audit_end"},"doc://com.apple.xctest/documentation/XCTest/XCT_METRIC_API_AVAILABLE":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_METRIC_API_AVAILABLE"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_METRIC_API_AVAILABLE","kind":"symbol","role":"symbol","title":"XCT_METRIC_API_AVAILABLE","type":"topic","url":"\/documentation\/xctest\/xct_metric_api_available"},"doc://com.apple.xctest/documentation/XCTest/XCT_NOESCAPE":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_NOESCAPE"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_NOESCAPE","kind":"symbol","role":"symbol","title":"XCT_NOESCAPE","type":"topic","url":"\/documentation\/xctest\/xct_noescape"},"doc://com.apple.xctest/documentation/XCTest/XCT_SWIFT_MAIN_ACTOR":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_SWIFT_MAIN_ACTOR"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_SWIFT_MAIN_ACTOR","kind":"symbol","role":"symbol","title":"XCT_SWIFT_MAIN_ACTOR","type":"topic","url":"\/documentation\/xctest\/xct_swift_main_actor"},"doc://com.apple.xctest/documentation/XCTest/XCT_SWIFT_SENDABLE":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_SWIFT_SENDABLE"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_SWIFT_SENDABLE","kind":"symbol","role":"symbol","title":"XCT_SWIFT_SENDABLE","type":"topic","url":"\/documentation\/xctest\/xct_swift_sendable"},"doc://com.apple.xctest/documentation/XCTest/XCT_SWIFT_UNAVAILABLE_FROM_ASYNC":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_SWIFT_UNAVAILABLE_FROM_ASYNC"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_SWIFT_UNAVAILABLE_FROM_ASYNC","kind":"symbol","role":"symbol","title":"XCT_SWIFT_UNAVAILABLE_FROM_ASYNC","type":"topic","url":"\/documentation\/xctest\/xct_swift_unavailable_from_async"},"doc://com.apple.xctest/documentation/XCTest/XCT_TO_BE_DEPRECATED_WITH_SWIFT_REPLACEMENT":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_TO_BE_DEPRECATED_WITH_SWIFT_REPLACEMENT"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_TO_BE_DEPRECATED_WITH_SWIFT_REPLACEMENT","kind":"symbol","role":"symbol","title":"XCT_TO_BE_DEPRECATED_WITH_SWIFT_REPLACEMENT","type":"topic","url":"\/documentation\/xctest\/xct_to_be_deprecated_with_swift_replacement"},"doc://com.apple.xctest/documentation/XCTest/XCT_UI_TESTING_AVAILABLE":{"abstract":[],"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"XCT_UI_TESTING_AVAILABLE"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int32V","text":"Int32"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_UI_TESTING_AVAILABLE","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"XCT_UI_TESTING_AVAILABLE"}],"role":"symbol","title":"XCT_UI_TESTING_AVAILABLE","type":"topic","url":"\/documentation\/xctest\/xct_ui_testing_available"},"doc://com.apple.xctest/documentation/XCTest/XCT_UNAVAILABLE":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_UNAVAILABLE"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_UNAVAILABLE","kind":"symbol","role":"symbol","title":"XCT_UNAVAILABLE","type":"topic","url":"\/documentation\/xctest\/xct_unavailable"},"doc://com.apple.xctest/documentation/XCTest/XCT_WARN_UNUSED":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_WARN_UNUSED"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_WARN_UNUSED","kind":"symbol","role":"symbol","title":"XCT_WARN_UNUSED","type":"topic","url":"\/documentation\/xctest\/xct_warn_unused"},"doc://com.apple.xctest/documentation/XCTest/XCT_WEAK_EXPORT":{"abstract":[],"fragments":[{"kind":"identifier","text":"XCT_WEAK_EXPORT"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_WEAK_EXPORT","kind":"symbol","role":"symbol","title":"XCT_WEAK_EXPORT","type":"topic","url":"\/documentation\/xctest\/xct_weak_export"},"doc://com.apple.xctest/documentation/XCTest/XCTest":{"abstract":[{"text":"An abstract base class for creating, managing, and executing tests.","type":"text"}],"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"XCTest"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTest","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"XCTest"}],"role":"symbol","title":"XCTest","type":"topic","url":"\/documentation\/xctest\/xctest"},"doc://com.apple.xctest/documentation/XCTest/XCTestCase":{"abstract":[{"text":"The primary class for defining test cases, test methods, and performance tests.","type":"text"}],"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"XCTestCase"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTestCase","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"XCTestCase"}],"role":"symbol","title":"XCTestCase","type":"topic","url":"\/documentation\/xctest\/xctestcase"},"doc://com.apple.xctest/documentation/XCTest/activities-and-attachments":{"abstract":[{"text":"Split long tests into substeps with activities, and attach output data like files and screenshots.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/activities-and-attachments","kind":"article","role":"collectionGroup","title":"Activities and Attachments","type":"topic","url":"\/documentation\/xctest\/activities-and-attachments"},"doc://com.apple.xctest/documentation/XCTest/asynchronous-tests-and-expectations":{"abstract":[{"text":"Verify that asynchronous code behaves as expected.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/asynchronous-tests-and-expectations","kind":"article","role":"collectionGroup","title":"Asynchronous Tests and Expectations","type":"topic","url":"\/documentation\/xctest\/asynchronous-tests-and-expectations"},"doc://com.apple.xctest/documentation/XCTest/boolean-assertions":{"abstract":[{"text":"Test a condition that generates a true or false result.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/boolean-assertions","kind":"article","role":"collectionGroup","title":"Boolean Assertions","type":"topic","url":"\/documentation\/xctest\/boolean-assertions"},"doc://com.apple.xctest/documentation/XCTest/comparable-value-assertions":{"abstract":[{"text":"Compare two values to determine whether one is larger or smaller than the other.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/comparable-value-assertions","kind":"article","role":"collectionGroup","title":"Comparable Value Assertions","type":"topic","url":"\/documentation\/xctest\/comparable-value-assertions"},"doc://com.apple.xctest/documentation/XCTest/defining-test-cases-and-test-methods":{"abstract":[{"text":"Add test cases and test methods to a test target to confirm that your code performs as expected.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/defining-test-cases-and-test-methods","kind":"article","role":"article","title":"Defining Test Cases and Test Methods","type":"topic","url":"\/documentation\/xctest\/defining-test-cases-and-test-methods"},"doc://com.apple.xctest/documentation/XCTest/deprecated-symbols":{"abstract":[{"text":"These symbols are deprecated and are no longer recommended.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/deprecated-symbols","kind":"article","role":"collectionGroup","title":"Deprecated Symbols","type":"topic","url":"\/documentation\/xctest\/deprecated-symbols"},"doc://com.apple.xctest/documentation/XCTest/equality-and-inequality-assertions":{"abstract":[{"text":"Check whether two values are equal or unequal.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/equality-and-inequality-assertions","kind":"article","role":"collectionGroup","title":"Equality and Inequality Assertions","type":"topic","url":"\/documentation\/xctest\/equality-and-inequality-assertions"},"doc://com.apple.xctest/documentation/XCTest/error-assertions":{"abstract":[{"text":"Check whether a function call throws, or doesn’t throw, an error.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/error-assertions","kind":"article","role":"collectionGroup","title":"Error Assertions","type":"topic","url":"\/documentation\/xctest\/error-assertions"},"doc://com.apple.xctest/documentation/XCTest/expected-failures":{"abstract":[{"text":"Anticipate known test failures to prevent failing tests from affecting your workflows.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/expected-failures","kind":"article","role":"collectionGroup","title":"Expected Failures","type":"topic","url":"\/documentation\/xctest\/expected-failures"},"doc://com.apple.xctest/documentation/XCTest/methods-for-skipping-tests":{"abstract":[{"text":"Skip tests when meeting specified conditions.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/methods-for-skipping-tests","kind":"article","role":"collectionGroup","title":"Methods for Skipping Tests","type":"topic","url":"\/documentation\/xctest\/methods-for-skipping-tests"},"doc://com.apple.xctest/documentation/XCTest/nil-and-non-nil-assertions":{"abstract":[{"text":"Check whether a test condition has, or doesn’t have, a value.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/nil-and-non-nil-assertions","kind":"article","role":"collectionGroup","title":"Nil and Non-Nil Assertions","type":"topic","url":"\/documentation\/xctest\/nil-and-non-nil-assertions"},"doc://com.apple.xctest/documentation/XCTest/nsexception-assertions":{"abstract":[{"text":"Check whether a function call throws, or doesn’t throw, an exception.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/nsexception-assertions","kind":"article","role":"collectionGroup","title":"NSException Assertions","type":"topic","url":"\/documentation\/xctest\/nsexception-assertions"},"doc://com.apple.xctest/documentation/XCTest/performance-tests":{"abstract":[{"text":"Gather metrics while running your code, and report a failure if the metrics become significantly worse than a baseline value.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/performance-tests","kind":"article","role":"collectionGroup","title":"Performance Tests","type":"topic","url":"\/documentation\/xctest\/performance-tests"},"doc://com.apple.xctest/documentation/XCTest/test-execution-and-observation":{"abstract":[{"text":"Observe, introspect, and customize the test execution flow.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/test-execution-and-observation","kind":"article","role":"collectionGroup","title":"Test Execution and Observation","type":"topic","url":"\/documentation\/xctest\/test-execution-and-observation"},"doc://com.apple.xctest/documentation/XCTest/unconditional-test-failures":{"abstract":[{"text":"Generate a failure immediately and unconditionally.","type":"text"}],"identifier":"doc:\/\/com.apple.xctest\/documentation\/XCTest\/unconditional-test-failures","kind":"article","role":"collectionGroup","title":"Unconditional Test Failures","type":"topic","url":"\/documentation\/xctest\/unconditional-test-failures"},"recording-UI-automation-for-testing-PageImage-card.png":{"alt":"Blue and gray rectangles over a red circle with a white outline.","identifier":"recording-UI-automation-for-testing-PageImage-card.png","type":"image","variants":[{"traits":["2x","light"],"url":"\/images\/com.apple.xcuiautomation\/recording-UI-automation-for-testing-PageImage-card@2x.png"},{"traits":["2x","dark"],"url":"\/images\/com.apple.xcuiautomation\/recording-UI-automation-for-testing-PageImage-card~dark@2x.png"}]}},"variantOverrides":[{"patch":[{"op":"replace","path":"\/identifier\/interfaceLanguage","value":"occ"},{"op":"replace","path":"\/hierarchy","value":{"paths":[["doc:\/\/com.apple.documentation\/documentation\/technologies"]]}},{"op":"replace","path":"\/topicSections","value":[{"anchor":"Test-cases-and-test-methods","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/defining-test-cases-and-test-methods","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTestCase","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTest"],"title":"Test cases and test methods"},{"anchor":"Test-assertions","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/boolean-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/nil-and-non-nil-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/equality-and-inequality-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/comparable-value-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/error-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/nsexception-assertions","doc:\/\/com.apple.xctest\/documentation\/XCTest\/unconditional-test-failures","doc:\/\/com.apple.xctest\/documentation\/XCTest\/expected-failures","doc:\/\/com.apple.xctest\/documentation\/XCTest\/methods-for-skipping-tests"],"title":"Test assertions"},{"anchor":"Asynchronous-tests","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/asynchronous-tests-and-expectations"],"title":"Asynchronous tests"},{"anchor":"UI-tests","identifiers":["doc:\/\/com.apple.documentation\/documentation\/XCUIAutomation"],"title":"UI tests"},{"anchor":"Performance-tests","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/performance-tests"],"title":"Performance tests"},{"anchor":"Activities-and-attachments","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/activities-and-attachments"],"title":"Activities and attachments"},{"anchor":"Test-execution","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/test-execution-and-observation"],"title":"Test execution"},{"anchor":"Deprecated","identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/deprecated-symbols"],"title":"Deprecated"},{"anchor":"Macros","generated":true,"identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTEST_SIMULATOR_UNAVAILABLE","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_DEPRECATED_WITH_DIRECT_REPLACEMENT","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_DEPRECATED_WITH_REPLACEMENT","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_DEPRECATED_WITH_SWIFT_REPLACEMENT","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_EXPORT","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_HEADER_AUDIT_BEGIN","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_HEADER_AUDIT_END","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_METRIC_API_AVAILABLE","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_NOESCAPE","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_SWIFT_MAIN_ACTOR","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_SWIFT_SENDABLE","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_SWIFT_UNAVAILABLE_FROM_ASYNC","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_TO_BE_DEPRECATED_WITH_SWIFT_REPLACEMENT","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_UI_TESTING_AVAILABLE","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_UNAVAILABLE","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_WARN_UNUSED","doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCT_WEAK_EXPORT"],"title":"Macros"},{"anchor":"Enumerations","generated":true,"identifiers":["doc:\/\/com.apple.xctest\/documentation\/XCTest\/XCTIssueReference\/Severity-swift.enum"],"title":"Enumerations"}]},{"op":"add","path":"\/relationshipsSections","value":null},{"op":"add","path":"\/seeAlsoSections","value":null},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTIssueReference~1Severity-swift.enum\/title","value":"XCTIssueSeverity"},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTIssueReference~1Severity-swift.enum\/fragments","value":[{"kind":"identifier","text":"XCTIssueSeverity"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTIssueReference~1Severity-swift.enum\/navigatorTitle","value":[{"kind":"identifier","text":"XCTIssueSeverity"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCT_UI_TESTING_AVAILABLE\/title","value":"XCT_UI_TESTING_AVAILABLE"},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCT_UI_TESTING_AVAILABLE\/fragments","value":[{"kind":"identifier","text":"XCT_UI_TESTING_AVAILABLE"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTest\/title","value":"XCTest"},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTest\/fragments","value":[{"kind":"identifier","text":"XCTest"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTest\/navigatorTitle","value":[{"kind":"identifier","text":"XCTest"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTestCase\/title","value":"XCTestCase"},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTestCase\/fragments","value":[{"kind":"identifier","text":"XCTestCase"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.xctest~1documentation~1XCTest~1XCTestCase\/navigatorTitle","value":[{"kind":"identifier","text":"XCTestCase"}]}],"traits":[{"interfaceLanguage":"occ"}]}]}