我正在使用Robolectric并尝试创建GoogleApiClient的阴影对象,但失败了。Shadow类的方法永远不会被调用。GoogleApiClient是接口--这会是个问题吗?有没有办法“隐藏”GoogleApiClient接口(或在测试中模拟GoogleApiClient )?
实施:
@Implements(GoogleApiClient.class)
public class ShadowGoogleApiClient {
public void __constructor__ (){
System.out.println("__constructor____constructor__");
}
@Implementation
void connect() {
System.out.println("connectconnectconnect");
}
@Implementation
boolean isConnected() {
System.out.println("isConnectedisConnected");
return false;
}
@Implementation
boolean isConnecting() {
System.out.println("isConnectingisConnecting");
return false;
}
}
我已经在测试中定义了Shadow类:
@Config(shadows = {ShadowGoogleApiClient.class},
constants = BuildConfig.class)
@RunWith(CustomRobolectricRunner.class)
public class ApiTest {
...
}
发布于 2015-09-22 23:25:30
您是否尝试过使用Mockito来模拟GoogleApiClient的实现?
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
myCallback.onConnected();
return null;
}
}).when(mGoogleApiClient).connect();
https://stackoverflow.com/questions/32657197
复制相似问题