ios – 单元测试本地通知

ios – 单元测试本地通知,第1张

概述我花了最后一天左右试图找出一种方法来对我的本地通知进行单元测试. 我正在使用Swift 2.2和Xcode 7.3 基本上,我有一个生成UILocalNotification的精简API,它通过UIApplication.sharedApplication()触发.presentLocalNotificationNow 在我的AppDelegate中,我实现了应用程序:didReceiveLoca 我花了最后一天左右试图找出一种方法来对我的本地通知进行单元测试.

我正在使用Swift 2.2和Xcode 7.3

基本上,我有一个生成UIlocalnotification的精简API,它通过UIApplication.sharedApplication()触发.presentlocalnotificationNow

在我的AppDelegate中,我实现了应用程序:dIDReceivelocalnotification方法,以显示UIAlertController,如下所示

func application(application: UIApplication,dIDReceivelocalnotification notification: UIlocalnotification) {    if application.applicationState == .Active {        var topController : UIVIEwController = (application.keyWindow?.rootVIEwController)!        while ((topController.presentedVIEwController) != nil) {            topController = topController.presentedVIEwController!        }        let alert = UIAlertController(Title: notification.alertTitle,message: notification.alertbody,preferredStyle: UIAlertControllerStyle.Alert)        alert.addAction(UIAlertAction(Title: "Ok",style: UIAlertActionStyle.Default,handler: {(action: UIAlertAction!) in}))        topController.presentVIEwController(alert,animated: true,completion: nil)    }}

手动运行时,这很好.我可以看到生成的消息和警报显示.

我想做的是提供一个单元测试来验证这个功能.

我测试iOS的经验是不存在的.

我的第一个想法是以某种方式模拟UIApplicationDeledgate所以我可以测试是否调用了应用程序:dIDReceivelocalnotification,类似于UIApplication.sharedApplication().委托= mockedDelegate,当我试图这样做时它崩溃了.

我的下一个想法是使用UI测试和监视器进行警报对话框.这工作到了一定程度,我能够注册通知(并获得“允许通知”对话框,我可以使用XCTestCase API轻松通过),但通知显示为横幅,而不是警报(从应用程序本身内部)!?

在这一点上,我不知道接下来要尝试什么.

我目前没有使用任何模拟框架,我的理解是Swift并不适合他们,但这只是我的阅读(除非我愿意从NSObject扩展).

解决方法 您可以通过创建本地通知并在测试中直接调用它来测试委托方法,如下所示:

let notification = UIlocalnotification()notification.alertbody = "Attention!"var userInfo  = [String: String]()userInfo["name"] = "notification"notification.userInfo = userInfo// further notification setuplet appDelegate = UIApplication.sharedApplication().delegateappDelegate?.application!(UIApplication.sharedApplication(),dIDReceivelocalnotification: notification)

您可以类似地调用其他委托方法来测试通知 *** 作等.

总结

以上是内存溢出为你收集整理的ios – 单元测试本地通知全部内容,希望文章能够帮你解决ios – 单元测试本地通知所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1003075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存