Ho bisogno di prendere in giro alcune classi personalizzate (creane un'ombra). Ho già letto su http://robolectric.org/custom-shadows/ come fare questo.Come creare ombre personalizzate in robolectric 3.0?
così, ho qualche classe:
public class MyClass {
public static int regularMethod() { return 1; }
}
creo un'ombra:
@Implements(MyClass.class)
public class MyShadowClass {
@Implementation
public static int regularMethod() { return 2; }
}
E ho impostato l'ombra in Test-classe:
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, shadows={MyShadowClass.class})
public class MyTest {
@Test
public void testShadow() {
assertEquals(2, MyClass.regularMethod());
}
}
Ma l'ombra non è usato
java.lang.AssertionError:
Expected :2
Actual :1
Come rendere visibile qualsiasi ombra personalizzata per RobolectricGradleTestRunner?
ho già provato:
- 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
ma io ottenere vari errori di compilazione, come ad esempio
InstrumentingClassLoaderConfig
non trovatoSetup
non trovato
come utilizzare le ombre personalizzati correttamente in robolectric 3.0?
Di solito avvolgiamo metodi statici in classi proprie o metodi protetti che potremmo prendere in giro nei test –