2014-11-26 4 views
0

Я пытаюсь использовать ShadowPath для проверки того, что рендер создает точки, которые я ожидаю, но я должен что-то пропускать, пытаясь заставить его работать.Robolectric 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.

Что мне не хватает? Thanks

+0

Кроме того, вызов «new Path()», чтобы передать его shadowOf (экземпляр), выдает исключение Stub, поэтому я действительно что-то пропускаю. – Chris

ответ

0

Ответ - это волшебство и не пропускайте тень вокруг.

Robolectric.shadoOf (экземпляр) вводит обратные вызовы в исходный экземпляр пути, и вы передаете экземпляр пути, который будет использоваться. Вы можете вызвать getPoints на экземпляре ShadowPath, чтобы получить очки, добавленные в исходный экземпляр.

Что касается исключения Stub при создании экземпляра Path, у меня возникла проблема с настройкой @RunWith по-прежнему настроен на JUnit4.class вместо RobolectricTestRunner.class, что означает, что я не мог бы фактически создать экземпляр Path.

Смежные вопросы