我想从命令行注册iOS模拟器中的Touch ID,以便我可以在授权下运行一些自动化的UI功能测试.
我尝试了一些不起作用的事情:
> xcrun simctl没有Touch ID选项
> AppleScript来控制菜单不起作用,因为osascript没有辅助权限(而且我不喜欢this invasive workaround)
>我在启动之前尝试编辑模拟器的plist,但找不到合适的键值对
如果重要,我使用Frank和Cucumber进行测试.
解决方法
据我所知,没有办法在模拟器上激活这个.
一般来说,要测试这样的东西,我从Apple组件中伪造一个回调,或者弹出一个警报视图,如果没有回调预期(比如调用openURL时,我会弹出一个警报视图,该URL应该被打开)验证在打开该URL时打开正确的内容),同时进行测试.
感觉有点黑客,但至少告诉我,如果苹果组件给我预期的回调,我的应用程序将采取预期的行动.
你如何判断是否测试?那么你有几个选择.
Jon Reid有一个关于如何判断您是否在运行时进行测试的好消息:http://qualitycoding.org/app-delegate-for-tests/ – 尽管他正在使用它来切换应用程序委托,但我也使用类似的技术来检查应用程序是否正在被测试.
我不是100%肯定这种技术将与黄瓜和弗兰克一起工作,因为我不知道他们是否在与测试相同的过程中运行.对于不像测试(例如XCUI测试)运行在同一进程中的事物,当应用程序启动时,我已经在ProcessInfo参数中传递,以便它知道要查找的内容.痛苦的屁股,再次,黑客,但它似乎工作.