【发布时间】:2015-01-27 23:20:10
【问题描述】:
我有一个包含常规方法和本地方法的类,我想模拟:
public class MyClass {
public int regularMethod() { ... }
public void native myNativeMethod();
}
我正在使用 Robolectric 来测试我的应用程序,并且我正在尝试找出一种使用 custom shadow class 来模拟这些方法的方法。这是我的影子课程:
@Implements(MyClass.class)
public class MyShadowClass {
@Implementation
public int regularMethod { return 0; }
@Implementation
public void nativeMethod { ... }
}
这是我的测试:
@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
public class MyTest {
@Test
@Config(shadows = { MyShadowClass.class })
public void test() {
MyClass obj = new MyClass();
Assert.assertEquals(obj.regularMethod(), 0);
}
}
这不像我想象的那样工作。模拟本机方法可能是对 Shadow 类的延伸,但我认为以这种方式使用自定义影子类会导致调用影子类代码。
【问题讨论】:
标签: class mocking shadow robolectric