我正在尝试使用ShadowPath来测试渲染器是否会产生我期望的点,但是我必须错过一些尝试让它运行的东西。
public void test() {
ShadowPath shadowPath = Robolectric.shadowOf(new Path());
drawToPath(shadowPath);
List<Point> points = path.getPoints();
...assertPoints...
}
public void drawToPath(Path path) {
path.moveTo(x, y);
path.drawTo(x1, y1);
...
}
显然我不能将shadowPath传递给drawToPath(),因为它不是子类Path,但它如何拦截moveTo和drawTo方法。
我错过了什么? 感谢
答案 0 :(得分:0)
答案是神奇的,不要传递阴影。
Robolectric.shadoOf(instance)将回调注入原始路径实例,然后传递路径实例以供使用。您可以在ShadowPath实例上调用getPoints以获取添加到原始实例的点。
对于实例化Path实例时的Stub异常,我遇到了安装问题 @RunWith仍设置为JUnit4.class而不是RobolectricTestRunner.class,这意味着我无法实际实例化Path。