我可以使用Xcode的UI测试检查推送通知吗?

时间:2017-06-14 08:51:30

标签: push-notification xctest xcode-ui-testing

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

1 个答案:

答案 0 :(得分:-2)

免责声明:我还没有这样做......

你无法生成令牌......所以我答案是否定的!可以做的是用存根数据模拟你的notificationManager。

使用您测试的存根数据:

  1. 你的回调函数是否下载了想要它的内容?
  2. 或者假设你在应用程序处于前台时有警报:是吗? 显示警报?
  3. 否则,如果您完全接受测试,看看应用是否会在收到通知后抛出callback,那么您就会对操作系统进行测试,这是错误的。您应该只测试自己的代码。

    通过测试你的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
            }
        }
    }
    

    派生自here

    现在你做的是,你模拟调用handleAPNSMessage的JSON对象看起来与你的服务器发送给你的那个相同,

    如果您想疯狂并真正复制远程通知,那么您可以使用自己的存根数据并创建本地通知...并查看该应用是否按预期工作...

    修改

    确保您看到How can I test Apple Push Notification Service without an iPhone?