WWDC 2017
Session video and resources: https://developer.apple.com/videos/play/wwdc2017/409/
- UI Testing in Xcode 8.3
- Siri
- UITouchBar
- Xcode 9
- Swift 4
- Block-based teardown
- UI Test speed enhancements
- CoreSimulator without launchinf simulator app
- Parallel device testing - YES ! with multiple
- destination
- Localization
- Improved provisioning workflow
- CoreSimulator
- Parallel Testing
- Validate calls which doesn't finish immediately
- Opening docs
- Work on background threads
- Network activities
- UI animations
- Create expectations and fulfill
- Timeout was always a failure
- Waiting requires test object
- No nested Waiting
- Extracted logic from
XCTestCase
- Calls back to
XCTWaiterDelegate
XCTWaiter(delegate : self).wait(for: [expectation], timeout: 10)
- Public initializer
- Decoupled from
XCTestCase
- Decoupled from
- Multiple fulfillments
- Ordering enforcement for expectations
- Scenarios
- App groups
- Settings
- Extensions
- Additions to
XCUIApplication
- New initializers
- Activate method
func activate()
- Useful for scenarios where there is no need to wipe out previous scenarios
let readerApp = XCUIApplication(bundleIdentifier: "/////")
let writerApp = XCUIApplication(bundleIdentifier: "/////")
readerApp.launch()
// Assertion to read something in the app
writerApp.activate()
// Write something and send via tap etc.
// set an expectation with a predicate that readerApp is on foreground
// wait for timeout
- User interface elements
- Buttons, labels etc.
- Faster in XCode 9