我一直在尝试让 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/