在 SurfaceView 上执行 Espresso 视图操作

Perform Espresso view action on SurfaceView

我有一个从 SurfaceView 扩展而来的 class GameView。我在 activity_main 布局中添加了这个视图,如下所示:

gameView = new GameView(MainActivity.this);
activity_main = findViewById(R.id.activity_main);
activity_main.addView(gameView);

现在我想使用 Espresso UI 测试在此 SurfaceView 上执行任何查看操作(即单击)。到目前为止,我想到了这个:

DataInteraction surfaceView = onData(instanceOf(GameView.class))
.inAdapterView(withClassName(is("android.view.SurfaceView")));
    surfaceView.perform(click());

但这不是正确的方法,因为它会出现以下错误:

android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with class name: is "android.view.SurfaceView"

如何找到视图?

使用 getName() 解决了问题。

ViewInteraction surfaceView = onView(withClassName(equalTo(GameView.class.getName())));
    surfaceView.perform(click());