-
Embrace Expected Failures in XCTest
Testing is a crucial part of building a great app: Great tests can help you track down important issues before release, improve your workflow, and provide a quality experience upon release. For issues that can't be immediately resolved, however, XCTest can help provide better context around those problems with XCTExpectFailure. Learn how this API works, its strict behavior, and how to improve the signal-to-noise ratio in your tests to identify new issues more efficiently.
Ressources
Vidéos connexes
WWDC22
WWDC21
-
Rechercher dans cette vidéo…
-
-
3:31 - XCTSkip unless device is iPad
try XCTSkipUnless(UIDevice.current.userInterfaceIdiom == .pad, "Only supported on iPad") -
4:31 - XCTExpectFailure
XCTExpectFailure("<https://dev.myco.com/bugs/4923> myValidationFunction is returning false") -
7:14 - Scoped XCTExpectFailure
XCTExpectFailure("<https://dev.myco.com/bugs/4923> fix myValidationFunction") { XCTAssert(myValidationFunction()) } -
8:34 - XCTExpectFailure with issue matcher
let options = XCTExpectedFailure.Options() options.issueMatcher = { issue in return issue.type == .assertionFailure } XCTExpectFailure("<https://dev.myco.com/bugs/4923> fix myValidationFunction", options: options) -
9:03 - Disable XCTExpectFailure for some platforms
let options = XCTExpectedFailure.Options() #if os(macOS) options.isEnabled = false #endif XCTExpectFailure("<https://dev.myco.com/bugs/4923> fix myValidationFunction", options: options) { XCTAssert(myValidationFunction()) } -
10:39 - Disable strict XCTExpectFailure behavior via options
let options = XCTExpectedFailure.Options() options.isStrict = false XCTExpectFailure("<https://dev.myco.com/bugs/4923> fix myValidationFunction", options: options) { XCTAssert(myValidationFunction()) } -
10:53 - Disable strict XCTExpectFailure behavior via parameter
XCTExpectFailure("<https://dev.myco.com/bugs/4923> fix myValidationFunction", strict: false) { XCTAssert(myValidationFunction()) }
-