我正在尝试使用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方法呢?
我遗漏了什么?谢谢
发布于 2014-11-27 07:16:47
答案是神奇的,不要到处传递阴影。
Robolectric.shadoOf(实例)将回调注入到原始path实例中,然后传递要使用的path实例。您可以在ShadowPath实例上调用getPoints来获取添加到原始实例的点。
至于实例化Path实例时的存根异常,我遇到了一个设置问题,@RunWith仍然设置为JUnit4.class,而不是RobolectricTestRunner.class,这意味着我实际上不能实例化Path。
https://stackoverflow.com/questions/27158040
复制相似问题