我想创建一个自定义阴影对象,它将监听我在真实对象上进行的调用,以便我可以对阴影进行测试断言。我使用Robolectric来运行我的测试,但我不断收到这个奇怪的错误:
org.fest.reflect.exception.ReflectionError: Unable to find method '$$robo$getData' in com.blah.SomeClass with parameter type(s) []
这就是我尝试过的:
public class SomeClass {
public void doSomething() {}
}
然后在我的测试目录中创建:
@Implements(SomeClass.class)
public class ShadowSomeClass {
@Implementation public void doSomething() {throw new RuntimeException("hi");}
}
然后我尝试在我的自定义TestRunner中绑定它,它扩展了RobolectricTestRunner
@Override
protected ShadowMap createShadowMap() {
return super.createShadowMap()
.newBuilder()
.addShadowClass(ShadowSomeClass.class)
.build();
}
然后在测试类中,使用我的自定义TestRunner
,我编写了一个单元测试:
@Test
public void robolectricNotWork() {
SomeClass subject = new SomeClass();
ShadowSomeClass shad = shadowOf_(subject); // this is the offending line of error
}
然后我得到了错误。
我做错了什么?