Refactor iOS UI tests to blueprint architecture and migrate legacy suites
This commit is contained in:
24
iosApp/XCUITest-Authoring.md
Normal file
24
iosApp/XCUITest-Authoring.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# XCUITest Authoring
|
||||
|
||||
## Required Architecture
|
||||
- Put shared test infrastructure in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Framework`.
|
||||
- Put feature suites in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Tests`.
|
||||
- Every test suite inherits `BaseUITestCase`.
|
||||
- Reusable multi-step setup belongs in `TestFlows`.
|
||||
- UI interactions should go through screen objects in `ScreenObjects.swift`.
|
||||
|
||||
## Runtime Contract
|
||||
- Launch args are standardized in `BaseUITestCase`:
|
||||
- `--ui-testing`
|
||||
- `--disable-animations`
|
||||
- `--reset-state`
|
||||
- App-side behavior for UI test mode is implemented in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/iosApp/Helpers/UITestRuntime.swift`.
|
||||
|
||||
## Naming
|
||||
- Test method naming format: `test<CaseID>_<BehaviorDescription>()`.
|
||||
- Case IDs should stay stable once committed.
|
||||
|
||||
## Waiting and Flake Rules
|
||||
- Use helper waits from `BaseUITestCase` extensions.
|
||||
- Do not add blind `sleep()`.
|
||||
- Prefer stable accessibility identifiers over visible text selectors.
|
||||
Reference in New Issue
Block a user