Muszę wyśmiać klasę niestandardową (utwórz dla niej cień). Przeczytałem już na http://robolectric.org/custom-shadows/ jak to zrobić.Jak tworzyć niestandardowe cienie w Robolectric 3.0?
tak, mam klasę:
public class MyClass {
public static int regularMethod() { return 1; }
}
utworzyć cień:
@Implements(MyClass.class)
public class MyShadowClass {
@Implementation
public static int regularMethod() { return 2; }
}
I ustawić cień w teście klasy:
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, shadows={MyShadowClass.class})
public class MyTest {
@Test
public void testShadow() {
assertEquals(2, MyClass.regularMethod());
}
}
ale cień nie jest używany.
java.lang.AssertionError:
Expected :2
Actual :1
Jak zrobić cień niestandardowy widoczny dla RobolectricGradleTestRunner?
Próbowałem już:
- 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
ale ja się różne błędy kompilacji, takich jak
InstrumentingClassLoaderConfig
Nie znalezionoSetup
Nie znaleziono
jak prawidłowo używać własnych cieni w robolectric 3,0?
Zazwyczaj owijamy statyczne metody we własne klasy lub chronione metody, które możemy wysmakować w testach –