有没有一种方法可以使用模拟器中的xcuitest框架自动执行面部识别或触摸识别。我可以手动执行注册面部/触摸ID并执行匹配或不匹配的方案。但是我想知道它是否可以自动化?
答案 0 :(得分:2)
考虑到Kane Cheshire的this post,可以通过发送达尔文通知来自动进行触摸ID和面部ID的单元测试:
+ (void)enrolled {
int token;
notify_register_check("com.apple.BiometricKit.enrollmentChanged", &token);
notify_set_state(token, 1);
notify_post("com.apple.BiometricKit.enrollmentChanged");
}
不过仅在Objective-C中,因此您可能需要使用桥接标头。
将他的Biometrics.m
中的文件Biometrics.h
和demo导入Gitub,您将可以从Biometrics.enrolled()
调用XCTestCase
。
答案 1 :(得分:0)
或者,如果Touch / FaceId阻止了XCUITesting,我建议您进行如下所示的简单检查以禁用Touch / faceId
guard CommandLine.isRunningUITests else {
return true
}
extension CommandLine {
static var isRunningUITests:Bool {
return CommandLine.arguments.contains("--uitesting")
}
}
您可以像下面一样轻松通过LaunchArguments
XCUIApplication().launchArguments.append("--uitesting")