【发布时间】:2015-08-10 13:28:44
【问题描述】:
我需要模拟一些自定义类(为它创建一个影子)。 我已经阅读了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; }
}
我在测试类中设置了阴影:
@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
- Mock native method with a Robolectric Custom shadow class
但我得到了各种编译错误,例如
-
InstrumentingClassLoaderConfig未找到 -
Setup未找到
如何在 robolectric 3.0 中正确使用自定义阴影?
【问题讨论】:
-
我们通常将静态方法包装在自己的类中或我们可以在测试中模拟的受保护方法中
标签: android testing robolectric shadows