Ich muss einige benutzerdefinierte Klasse spotten (erstellen Sie dafür einen Schatten). Ich habe bereits gelesen auf http://robolectric.org/custom-shadows/, wie dies zu tun ist.Wie erstelle ich benutzerdefinierte Schatten in robectric 3.0?
so habe ich einige Klasse:
public class MyClass {
public static int regularMethod() { return 1; }
}
Ich schaffe einen Schatten:
@Implements(MyClass.class)
public class MyShadowClass {
@Implementation
public static int regularMethod() { return 2; }
}
Und ich den Schatten in Test-Klasse:
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, shadows={MyShadowClass.class})
public class MyTest {
@Test
public void testShadow() {
assertEquals(2, MyClass.regularMethod());
}
}
Aber der Schatten ist nicht benutzt.
java.lang.AssertionError:
Expected :2
Actual :1
Wie kann man einen benutzerdefinierten Schatten für RobolectricGradleTestRunner sichtbar machen?
Ich habe bereits versucht:
- 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
aber ich verschiedene Kompilierungsfehlern bekommen, wie
InstrumentingClassLoaderConfig
nichtSetup
nicht gefunden
wie benutzerdefinierte Schatten in robolectric 3.0 richtig zu benutzen?
Wir wickeln in der Regel statische Methoden in eigenen Klassen oder geschützten Methoden, die wir in Tests verspotten konnten –