快速/灵活的通知用户信息测试
Posted
技术标签:
【中文标题】快速/灵活的通知用户信息测试【英文标题】:Quick/Nimble notification userInfo testing 【发布时间】:2019-07-22 17:48:37 【问题描述】:我正在查看快速/灵活的通知支持,例如:
expect
NotificationCenter.default.postNotification(testNotification)
.to(postNotifications(equal([testNotification]))
有没有办法让我掌握返回的通知以检查用户信息? 我的目标是调用一个发布通知的方法,然后检查该通知 userInfo 并确保键/值对正确。
快速:2.1.0 敏捷:8.0.1
【问题讨论】:
【参考方案1】:我最终这样做了:
func equalName(_ expectedName: Notification.Name, condition: @escaping (([AnyHashable: Any]) -> Bool)) -> Predicate<[Notification]>
return Predicate.define("equal <\(stringify(expectedName))>") actualExpression, msg in
guard let actualValue = try actualExpression.evaluate() else
return PredicateResult(status: .fail, message: msg)
let actualNames = actualValue
.filter $0.name == expectedName
.filter notification in
guard let userInfo = notification.userInfo else
return false
return condition(userInfo)
.compactMap $0.name
let matches = actualNames.contains(expectedName)
return PredicateResult(bool: matches, message: msg)
然后在呼叫站点您可以提供条件..
【讨论】:
以上是关于快速/灵活的通知用户信息测试的主要内容,如果未能解决你的问题,请参考以下文章
基于JAVA SSM springboot实现的抗疫物质信息管理系统(《精品毕设》源码+sql+论文)主要功能:用户区域物质类型物质详情物质申请和审核以及我的申请和通知公告以及灵活控制菜单权限(代码片