java - Robotium 与 libGDX 查找 imageButton 索引

标签 java android libgdx robotium

我一直在尝试让 Robotium 测试器适用于 libGDX 中的 Android 项目,但遇到了一些问题。 首先,我想测试我的游戏按钮(即 imageButton),但为此我需要 Android 中的 imageButton 索引。

我怎样才能得到它?

我的按钮位于主项目中:

  ImageButtonStyle style = new ImageButtonStyle();
  style.imageUp = buttonsImagesUp;
  style.imageDown = buttonsImagesDown;
  ImageButton newgameButton = new ImageButton(style);
  newgameButton.setPosition(425,330);

这是我想在 JUnit 中测试的按钮。

我的 JUnit 代码:

public class ButtonTest extends ActivityInstrumentationTestCase2<MainActivity> {

   private Solo solo;

   @SuppressWarnings("deprecation")
   public ButtonTest() {
      super("com.me.myGame", MainActivity.class);
   }

   protected void setUp() throws Exception {
      super.setUp();
      solo = new Solo(getInstrumentation(), getActivity());
   }

   public void testMenu(){
      solo.assertCurrentActivity("First menu selected",  MainActivity.class);
      solo.clickOnImageButton(index); //need index
   }
}

我的游戏设置如下: 首先是处理资源并将第一个屏幕设置为主菜单的主 Game 类:

  @Override
   public void create() {
      playSound = userPref.getBoolean("playSounds");
       setScreen(mainMenuScreen);              
   }

之后,它会转到 MainMenuScreen.js,这就是我想用 JUnit 测试的按钮

最佳答案

Robotium 的 ImageButton 理念与 Libgdx 非常非常不同。 Robotium 期望有一个图像按钮,该按钮被定义为标准 Android UI 基础架构的一部分(请参阅 Android ImageButton )。 Libgdx ImageButton 是一个具有 OpenGL 纹理引用的 Java 对象(请参阅 Libgdx ImageButton )。从 Android UI 基础设施的角度来看,Libgdx 应用程序只是一个全屏 OpenGL View ,可供 Robotium 使用的元数据非常少。

您也许能够使用原始的“clickOnScreen”基础设施,但您必须手动计算和跟踪按钮在屏幕上的位置。此外,如果 Robotium 不包含 Libgdx 应用程序中不存在的 Android UI 基础设施的其他依赖项,我会感到惊讶。

关于java - Robotium 与 libGDX 查找 imageButton 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15694744/

相关文章:

java - 如何创建 ServletContext 的模拟属性?

Android CountDownLatch.await() 过早卡住 UI

android - 如何为 Android 10 和 11 的整个设备设置暗模式?

android - 如何通过将 FFMPEG lib 用于 android 来减小 mp4 大小

java - Facebook 与 Libgdx 集成

Java --> libGdx 项目 --> Html --> gwt 异常 --> GWT 反射?

java - 字符串拆分功能未按预期工作

java - Java 中的速度为什么有些代码运行得更快

java - Libgdx Box 不是用颜色绘制的,而是用纹理绘制的

java - JAX-RS 接受图像作为输入