我最近升级了我的项目以使用 Nimble 9.0.0。大约在同一时间,我不得不将我的收藏集制作成一本 type 的字典[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"))]]])]>