Xamarin UI测试无法识别iOS App的系统对话框

时间:2017-04-28 12:20:39

标签: ios xamarin

我想使用xamarin UI测试自动化我们的iOS应用。要访问该应用,用户必须提供他/她的TouchID。但Xamarin测试记录器和Repl()都无法识别Touch ID系统对话框(请参见随附的屏幕截图)。

此对话框不是由我们的开发人员开发的,而是一个系统对话框。

如何执行与此Touch ID相关联的操作?

由于

1 个答案:

答案 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并设置您需要继续的任何内容。