I have read that addUIInterruptionMonitorWithDescription
could be used to accept / tap on a particular button in a system alert. On recently trying some test code out, I was doing the following:
On the simulator, I was surprised to find that the Calendar and Location prompt automatically had their "Allow" buttons tapped. For the Photos prompt, the "Don't Allow" was hit. My question is - is there no need for addUIInterruptionMonitorWithDescription
anymore? I tried using it for tapping on the dialogs but it didn't do anything. Even when I tried to hit another button on the alerts, I didn't see it working. How do I tap on the individual buttons on a system alert her?
If there is an alert on screen, and none of your interruption handlers handle it, XCTest will dismiss it for you if you are using Xcode <9.1.
To gain control of the alerts, you should create an interruption handler for each alert, returning true
from the closure when (and only when) you have handled the alert that handler was intended for.
If the test tries all your alert handlers or receives a true
return value from any of your handlers, and there is still an alert on screen, XCTest will handle the alert itself.