代码之家  ›  专栏  ›  技术社区  ›  Nafis Abdullah Khan

在SurfaceView上执行Espresso view操作

  •  1
  • Nafis Abdullah Khan  · 技术社区  · 8 年前

    我有课 GameView 扩展自 SurfaceView . 我在activity\u主布局中添加了以下视图:

    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"

    我怎样才能找到风景?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Nafis Abdullah Khan    8 年前

    使用getName()解决了这个问题。

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