如何在 swift ios 中对从特定号码拨打和接听电话进行 UI 测试

How to do UI testing for calling and receving a phone call from a Particular Number in swift ios

提问人:Datta Bhaskar 提问时间:10/12/2023 最后编辑:Datta Bhaskar 更新时间:10/12/2023 访问量:37

问:

我正在尝试进行 UI 测试以拨打电话和接听电话,但测试用例失败但我尝试了所有 XCUIElementTypeQueryProvider 仍然不起作用。

func testPhoneCall() {
    let Button = app.buttons["Call"]
    XCTAssertTrue(Button.exists)
    Button.tap()
    sleep(2)
    
    let cancelButton = app.alerts["Cancel"]
    XCTAssertTrue(cancelButton.exists)
    cancelButton.tap()
    sleep(2)
    
    let callButton = app.popUpButtons["Call"]
    XCTAssertTrue(callButton.exists)
    callButton.tap()
    sleep(5)
}

这是我尝试过的代码,但是当我尝试运行此测试用例时,它失败了

@IBAction func callButtonClicked(_ sender: Any) {
        callNumber(phoneNumber:"")
}
private func callNumber(phoneNumber:String) {
    if let phoneCallURL = URL(string: "telprompt://\(+9535965654)") {
        let application:UIApplication = UIApplication.shared
        if (application.canOpenURL(phoneCallURL)) {
            application.open(phoneCallURL, options: [:], completionHandler: nil)
        }
    }
}

这是我在视图控制器中编写的代码。任何人都可以帮我为此代码编写 UItestcase 吗?谢谢

ios swift xctest xcuitest xcuielement

评论

1赞 Paulw11 10/12/2023
提示对话框由操作系统显示,而不是由应用显示,因此你不会在视图中找到该对话框或按钮
0赞 Jon Reid 10/15/2023
您可以进行单元测试。测试将是超快速和精确的。(这将需要定义一个协议,以便您的测试可以提供自己的伪造版本。callButtonClicked(phoneNumber:)UIApplication

答: 暂无答案