私が探していたときにトップヒットだったので、これを拡張するだけです...
デフォルトの RoboGuice モジュールをオーバーライドするようにテスト クラス (またはテスト ランナー) を設定したら、オーバーライドされた RoboGuice モジュールを次のように設定します (この例では)。
public class TestModule extends AbstractModule {
@Override
protected void configure() {
bind(LocationManager.class).toInstance((LocationManager) Robolectric.application.getSystemService(Context.LOCATION_SERVICE));
}
}
次に、RoboGuice は、アプリケーションと同じロケーション マネージャーをテストに挿入します。また、そのシャドウをインスタンス化し、予想される場所、プロバイダーの状態などを設定できます。
@Test
public void mapLoadsCenteredOnPhoneLocationWhenNoTargetIntent() {
Location l = new Location("test");
l.setLatitude(Double.parseDouble("52.222"));
l.setLongitude(Double.parseDouble("-2.222"));
shadowLocationManager.setLastKnownLocation(GPS_PROVIDER, l);
shadowLocationManager.setProviderEnabled(GPS_PROVIDER, true);
shadowLocationManager.setProviderEnabled(NETWORK_PROVIDER, false);
//snip
}