Hello Developer community,
In our company we are developing a communication framework to talk to devices whether they are locally available or remotely (via a proprietary cloud).
To test this functionality we currently have to run a lot of tests manually because they require joining different WiFi networks.
We really need to automate these tests because it takes a lot of manual effort to run them, but:
- Running Unit Tests (even on a Phone by using a fake host app) i can't change the current WiFi.
- NEHotspotHelper requires special permission from apple (via a request form)
- NEHotspotConfigurationManager requires user interaction every single time that you try to switch the network
- Starting in XCode 9 it is possible to open the Settings App and switch the connected WiFi programmatically, BUT...
- this is only possible when running UI tests.
- we develop a library, not an app
- If i try to hide my tests inside a UI testing framework then i can't access the API of the library...
- the library we develop is quite extensive so developing a UI element for every single API method is not feasible.
Is there really nothing that would allow switching WiFis in the context of a test?
I could even live with private APIs considering that their usage is part of the tests, NOT part of the framework that we want to ship.