我需要模拟一些自定义类(为其创建一个影子)。 我已经在http://robolectric.org/custom-shadows/上阅读了如何做到这一点。
所以,我有一些类:
public class MyClass {
public static int regularMethod() { return 1; }
}
我创建了一个阴影:
@Implements(MyClass.class)
public class MyShadowClass {
@Implementation
public static int regularMethod() { return 2; }
}
我在Test类中设置了阴影:
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, shadows={MyShadowClass.class})
public class MyTest {
@Test
public void testShadow() {
assertEquals(2, MyClass.regularMethod());
}
}
但是阴影没有被使用。
java.lang.AssertionError:
Expected :2
Actual :1
如何使任何自定义阴影对RobolectricGradleTestRunner可见?
我已经尝试过:
- http://www.codinguser.com/2015/06/how-to-create-shadow-classes-in-robolectric-3/。
- https://github.com/jiahaoliuliu/RobolectricSample/blob/master/app-tests/src/main/java/com/jiahaoliuliu/robolectricsample/RobolectricGradleTestRunner.java。
- 使用Robolectric自定义阴影类模拟本地方法。
但是我遇到了各种编译错误,例如:
InstrumentingClassLoaderConfig
未找到。Setup
未找到。