最近、Nimble 9.0.0 を使用するようにプロジェクトをアップグレードしました。同じ頃、コレクションの 1 つを 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"))]]])]>