1
通知コールバック(addNotificationBlock
に登録されている)が同期的に起動されるようにRealm
を設定する方法はありますか?特に、私はテストでこの動作が必要です。レルムaddNotificationBlockを使用したテストコード
コールバックは非同期なので、テストでは使用できません。したがって、代わりにテストでの動作を模倣する依存関係を注入しながら、プロダクションで通知登録をラップする依存関係を注入する必要があります。
これは、a)より多くのコードを必要とし、b)コードがRealmCollectionChange
を構築する方法など、Realmについての前提を作成しているので、それは素晴らしい解決策ではありません。
同期できない場合は、RealmCollectionChange
に依存しているコードをテストするためのより良い方法の提案がありますか?
このソリューションは機能しますが、残念ながら理想的ではありません。テストでは、特にテスト対象が統合テストの場合のように通知ブロックから遠く離れている場合、実装の詳細との調整がはるかに必要になります。あなたは依存関係に 'XCTestExpectation'を注入する必要があります。そして、あなたがそれを待つべき時を知る必要があります。また、通知ブロックで待機してはいけませんでしたが、そうしなかった場合、偽陽性の通過テストの可能性があります。 – solidcell