OOTB、Robolectricはロケールをそれほどサポートしていません。したがって、アプリがロケールに依存している場合(多くのアプリは、適切にi18nである場合)、これは非常に苦痛になる可能性があります。簡単に言うと、必要なロケールをシミュレートできる独自のShadowFooGeocoderとShadowFooAddressを作成しました。これらは基本的に、既存のシャドウの再実装です。
ただし、クラスをそのようにバインドする場合:bindShadowClass(ShadowFooGeocoder.class)、これはうまく機能します。実行時に、正しいシャドウが返されます。問題は、このオブジェクトにシミュレーションを設定したいのですが、その方法がわかりません。instanceが注入されたGeoCoderであるshadowOf(instance)は、ShadowGeoCoderを返します。ShadowWranglerを直接操作してみましたが、ShadowGeocoderも返されます。
bindShadowClass(...)呼び出しを介してバインドしたシャドウクラスを取得して、期待値(シミュレーション)を設定するにはどうすればよいですか?
注:これは、ここのRobolectricグループに関する同じ質問の再投稿です。グループの質問に誰かに答えてもらう成功率がかなり低いので、ここに投稿しました。ここでより良い結果を期待しています。