Push notification 我可以使用Xcode';检查推送通知吗;用户界面测试?

Push notification 我可以使用Xcode';检查推送通知吗;用户界面测试?,push-notification,xctest,xcode-ui-testing,Push Notification,Xctest,Xcode Ui Testing,我们有一些应用程序需要定期检查推送通知。我们可以通过Xcode UI测试检查推送通知吗 免责声明:我没有这样做 你不能生成令牌…所以我猜答案是否定的!我们可以用存根数据模拟notificationManager 使用您测试的存根数据: 你的回调函数下载了你想要的吗 或者假设你们在应用程序出现在前台时有提醒:你们是吗 显示警报 否则,如果你只是在测试应用程序在收到通知时是否抛出错误,那么你就是在测试操作系统,这是错误的。您应该只测试自己的代码 通过测试notificationManager,我的大

我们有一些应用程序需要定期检查推送通知。我们可以通过Xcode UI测试检查推送通知吗

免责声明:我没有这样做

你不能生成令牌…所以我猜答案是否定的!我们可以用存根数据模拟notificationManager

使用您测试的存根数据:

  • 你的回调函数下载了你想要的吗
  • 或者假设你们在应用程序出现在前台时有提醒:你们是吗 显示警报
  • 否则,如果你只是在测试应用程序在收到通知时是否抛出错误,那么你就是在测试操作系统,这是错误的。您应该只测试自己的代码

    通过测试notificationManager,我的大致意思是:

    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    
            NotificationManager.shared.handle(userInfo)
    }
    
    您的NotificationManager类

    func handleAPNSMessage(_ message:[AnyHashable: Any]) {
    
    if let aps = message["aps"] as? NSDictionary {
        if let alert = aps["alert"] as? NSDictionary {
            if let message = alert["message"] as? NSString {
               //Do stuff
            }
        } else if let alert = aps["alert"] as? NSString {
            //Do stuff
            }
        }
    }
    
    源自

    现在您要做的是,使用一个JSON对象模拟调用
    handleAppnsMessage
    ,该对象看起来与服务器将发送给您的对象相同

    如果你想疯狂地复制远程通知,那么你可以使用你自己的存根数据并创建本地通知。。。看看这个应用程序是否能像你期望的那样工作

    编辑:


    确保您看到

    我可以从我们开发的工具触发推送通知。这不是问题。我在问我是否可以通过XCTestCase从推送通知中获取元素及其标识符?@我不确定“元素”和“标识符”是什么意思。我是说你通过有效载荷发送了一个物体,对吗?您可以获取其所有键/值-假设您可以触发itI我问了这个关于XCEST UI测试的问题,而不是关于通知相关机制的问题。@困惑您是否尝试使用Xcode的记录功能?@困惑,您是如何使用UITEST触发推送通知的?我对我的答案做了一些编辑,请看一看