guice java.lang.ClassCastException:无法将对象_代理强制转换为android.net.ConnectionManager

guice java.lang.ClassCastException:无法将对象_代理强制转换为android.net.ConnectionManager,java,android,mockito,roboguice,Java,Android,Mockito,Roboguice,您好,我在我的项目中使用RoboGuice和Mockito,我在测试中遇到了解决SystemServices的问题 我上了一节课 public class RoboInstrumentationTestCase extends InstrumentationTestCase { protected Application application; protected Context context; protected Injector injector; @Override protect

您好,我在我的项目中使用RoboGuice和Mockito,我在测试中遇到了解决
SystemServices
的问题

我上了一节课

public class RoboInstrumentationTestCase extends InstrumentationTestCase {

protected Application application;
protected Context context;
protected Injector injector;

@Override
protected void setUp() throws Exception {
    application = mock(Application.class, RETURNS_DEEP_STUBS);
    context = mock(RoboActivity.class, RETURNS_DEEP_STUBS);
    injector = RoboGuice.setBaseApplicationInjector(application, RoboGuice.DEFAULT_STAGE, 
            Modules.override(RoboGuice.newDefaultRoboModule(application)).
            with(   new UtilModule(),
                    new DatabaseModule(), 
                    new FixtureModule(),
                    new RepositoryModule(),
                    new ServiceCoreModule(),
                    new ServiceModule()
                    ));
    when(context.getApplicationContext()).thenReturn(application);
    when(application.getApplicationContext()).thenReturn(application);

    super.setUp();
}

@Override
protected void tearDown() throws Exception {
    super.tearDown();
    RoboGuice.util.reset();
}

protected Injector getInjector() {
    return injector;
}
}
在另一个类中,我需要检索
ConnectivityManager

public class ConnectivityUtilImpl implements ConnectivityUtil {

private ConnectivityManager connectivityManager;

@Inject
public void setConnectivityManager(ConnectivityManager connectivityManager) {
    this.connectivityManager = connectivityManager;
}

/* (non-Javadoc)
 * @see com.devsu.supermaxi.util.impl.ConnectivityUtil#getNetworkInfo(android.content.Context)
 */
@Override
public NetworkInfo getNetworkInfo(){
    return connectivityManager.getActiveNetworkInfo();
}
但我得到了以下错误:

java.lang.ClassCastException: Object_Proxy cannot be cast to android.net.ConnectivityManager
at com.devsu.supermaxi.util.impl.ConnectivityUtilImpl.getNetworkInfo(ConnectivityUtilImpl.java:27)
at com.devsu.supermaxi.util.impl.ConnectivityUtilImpl.isConnected(ConnectivityUtilImpl.java:35)
at com.devsu.supermaxi.services.core.JSONService.execute(JSONService.java:144)
at com.devsu.supermaxi.services.core.BaseService.executeJSONService(BaseService.java:196)
at CardValidationService_Proxy.super$executeJSONService$org_json_JSONObject(CardValidationService_Proxy.generated)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.google.dexmaker.stock.ProxyBuilder.callSuper(ProxyBuilder.java:523)
at com.google.dexmaker.mockito.InvocationHandlerAdapter$ProxiedMethod.invoke(InvocationHandlerAdapter.java:98)
at org.mockito.internal.invocation.InvocationImpl.callRealMethod(InvocationImpl.java:108)
at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:36)
at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:93)
at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:38)
at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke(InvocationHandlerAdapter.java:54)
at CardValidationService_Proxy.executeJSONService(CardValidationService_Proxy.generated)
at com.devsu.supermaxi.services.core.BaseService.executeSync(BaseService.java:173)
at com.devsu.supermaxi.services.CardValidationService.executeSync(CardValidationService.java:52)
at CardValidationService_Proxy.super$executeSync$org_json_JSONObject(CardValidationService_Proxy.generated)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.google.dexmaker.stock.ProxyBuilder.callSuper(ProxyBuilder.java:523)
at com.google.dexmaker.mockito.InvocationHandlerAdapter$ProxiedMethod.invoke(InvocationHandlerAdapter.java:98)
at org.mockito.internal.invocation.InvocationImpl.callRealMethod(InvocationImpl.java:108)
at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:36)
at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:93)
at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:38)
at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke(InvocationHandlerAdapter.java:54)
at CardValidationService_Proxy.executeSync(CardValidationService_Proxy.generated)
at com.devsu.supermaxi.services.test.CardValidationServiceTest.testInvalidCard(CardValidationServiceTest.java:57)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:545)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1575)

请允许我建议一种“保持简单”的方法,只需模拟一下
ConnectivityManager
NetworkInfo
,这就是您测试这个类所需的全部内容非常感谢,您是对的。。我不考虑你的建议