我想使用xamarin UI测试自动化我们的iOS应用。要访问该应用,用户必须提供他/她的TouchID。但Xamarin测试记录器和Repl()都无法识别Touch ID系统对话框(请参见随附的屏幕截图)。
此对话框不是由我们的开发人员开发的,而是一个系统对话框。
如何执行与此Touch ID相关联的操作?
由于
答案 0 :(得分:1)
系统对话框不是你可以使用calabash或Xamarin.UITest查询的,这非常烦人。
您需要使用后门来模拟成功或失败状态。您可以在这里阅读更多相关信息:
https://developer.xamarin.com/guides/testcloud/uitest/working-with/backdoors/
基本上你在AppDelegate中定义了一个方法:
[Export("touchIdBackdoor:")] // notice the colon at the end of the method name
public NSString TouchIdBackdoor(NSString value)
{
if (value == "true")
{
//simulate ok finger press
}
else
{
//simulate failed finger
}
}
然后在您的测试中,当您希望出现触摸ID时,您将调用后门:
app.Invoke("touchIdBackdoor:", "true");
取消触摸ID并设置您需要继续的任何内容。