无法使用 Robolectric 3 创建影子 类
Unable to create shadow classes with Robolectric 3
我按照 Robolectric 文档创建了影子 classes 但我无法在测试期间 运行 影子方法,它总是使用原始方法。
这是我的代码:
原文class:
public class Original {
public void print(){
System.out.println("Hi from original class!");
}
}
影子class:
@Implements(Original.class)
public class ShadowOriginal {
@Implementation
public void print(){
System.out.println("Hi from shadow class!");
}
}
测试:
@RunWith(RobolectricGradleTestRunner.class)
@Config(manifest = "src/main/AndroidManifest.xml",
emulateSdk = 21,
reportSdk = 21,
constants = BuildConfig.class,
shadows = {ShadowOriginal.class})
public class OasisTests {
@Test
public void test() {
Original t = new Original();
t.print();
}
}
当我运行测试时,它总是显示"Hi from original class!"
我的代码有什么问题?我使用
- Android 工作室 1.2
- robolectric 3.0-rc2
- robolectric-gradle-插件 1.0.1
我该如何解决这个问题?
提前致谢
您需要一个自定义的 robolectric 跑步者,您可以在其中注册自己的 类 以便他们可以被跟踪。参见
我按照 Robolectric 文档创建了影子 classes 但我无法在测试期间 运行 影子方法,它总是使用原始方法。
这是我的代码:
原文class:
public class Original {
public void print(){
System.out.println("Hi from original class!");
}
}
影子class:
@Implements(Original.class)
public class ShadowOriginal {
@Implementation
public void print(){
System.out.println("Hi from shadow class!");
}
}
测试:
@RunWith(RobolectricGradleTestRunner.class)
@Config(manifest = "src/main/AndroidManifest.xml",
emulateSdk = 21,
reportSdk = 21,
constants = BuildConfig.class,
shadows = {ShadowOriginal.class})
public class OasisTests {
@Test
public void test() {
Original t = new Original();
t.print();
}
}
当我运行测试时,它总是显示"Hi from original class!"
我的代码有什么问题?我使用
- Android 工作室 1.2
- robolectric 3.0-rc2
- robolectric-gradle-插件 1.0.1
我该如何解决这个问题?
提前致谢
您需要一个自定义的 robolectric 跑步者,您可以在其中注册自己的 类 以便他们可以被跟踪。参见