2013-08-16 6 views
13

RobolectricのAsyncTaskLoadersの誰かが幸運を書いているユニットテストを持っていましたか?このexample for AsyncTaskの修正版を試しましたが、同じ動作をしません。特にonLoadFinishedは決して呼び出されません。 Robolectricでローダーをテストするための実例はありますか?Robolectricを使用したAsyncTaskLoadersのテスト

+1

解決策は見つかりましたか? – Kuno

+0

残念ながら。 –

答えて

1

ローダーは使用しないでください。それらはテストするのが容易ではなく、それらを使用する断片とアクティビティに緊密に結合されています。代わりに、非同期データフローにRxJava Observablesを使用します。スケジューリングを解除して、ユニットテストで同期させて実行することができます。それはずっときれいで、ずっと簡単です。

+0

共有する例がありますか?私は特に "デカップリングスケジューラ"の部分を探しています。共通のスケジューラーを注入するような購読の際に、コード内で何か異なることをしますか?または、指定されたスレッド上ですべてを実行するようにRxjavaに指示する素晴らしい方法がありますか? –

+0

私はSchedulerFactoryを必要とするクラスに渡しますが、実動では、非同期スケジューラ(io、newThreadなど)をファクトリメソッドで渡します。ユニットテストでは、すべての呼び出しがすべてのコール。観測対象にスケジューラを渡すことができます。 –

0

私はちょうど私が、それはこのスタックチケットに動作するようになった道を投稿: Testing a CursorLoader with Robolectric & Mockito

それはカップルの余分なシャドウクラスを作成が含まれます。私は要求された場合に修正をここに貼り付けることができますが、重複した回答のための規約が何であるか分かりませんでした。

関連する問題