我最近将我的项目升级为使用Nimble 9.0.0。大约在同一时间,我不得不为我的收藏品制作了一个[AnyHashable : AnyHashable]类型的字典。我的代码在修改集合时运行,并将添加到通知中的内容作为userInfo字典的一部分发送。
下面是我验证通知的方法:expect { try? cache.add(items: itemsToAdd)}.to(postNotifications(equal([itemAddedExpectedNotification])))
这开始失败,即使这些值是相同的,因为它似乎期望用户信息字典在字典没有真正排序时维护顺序。有没有办法显式地测试userInfo部分?
下面是来自Xcode 12的错误消息:
Address and Undefined Behavior Sanitizers: expected to equal
<[name = itemAdded, object = Optional(Cache count : 0, cache limit: -1), userInfo = Optional([AnyHashable("items"): [["key": Optional(AnyHashable("CachedItem-2")), "value": Optional(AnyHashable(2))], ["key": Optional(AnyHashable("CachedItem-3")), "value": Optional(AnyHashable(3))], ["value": Optional(AnyHashable(1)), "key": Optional(AnyHashable("CachedItem-1"))], ["key": Optional(AnyHashable("CachedItem-0")), "value": Optional(AnyHashable(0))]]])]>, got
<[name = itemAdded, object = Optional(Cache count : 4, cache limit: -1), userInfo = Optional([AnyHashable("items"): [["key": Optional(AnyHashable("CachedItem-3")), "value": Optional(AnyHashable(3))], ["value": Optional(AnyHashable(1)), "key": Optional(AnyHashable("CachedItem-1"))], ["value": Optional(AnyHashable(0)), "key": Optional(AnyHashable("CachedItem-0"))], ["value": Optional(AnyHashable(2)), "key": Optional(AnyHashable("CachedItem-2"))]]])]>发布于 2020-10-09 04:46:48
我能够使用this - Quick/Nimble notification userInfo testing来编写自定义的匹配,并添加了我自己的变体来匹配多个通知。
https://stackoverflow.com/questions/64268745
复制相似问题