我正在开发2D街机游戏并编写测试(在单独的Android JUnit测试项目中)。我需要游戏运行一些测试方法。我写了以下代码:
public void testGameStart() throws InterruptedException {
_activity.runOnUiThread(
new Runnable() {
public void run() {
_gameView.requestFocus();
} // end of run() method definition
} // end of anonymous Runnable object instantiation
); // end of invocation of runOnUiThread
//start game
this.sendKeys(KeyEvent.KEYCODE_MENU,
KeyEvent.KEYCODE_ENTER);
Sub.sleep(10000); //wait 10 seconds
在运行此测试时,我看到菜单出现并突出显示“开始”,但是我没有在模拟器上看到游戏启动。但是,当我单击“MENU”然后在测试运行期间自己“启动”时,它会启动。我做错了什么?
答案 0 :(得分:1)
这对我来说很奇怪,但以下代码按照我需要的方式运行:
this.sendKeys(KeyEvent.KEYCODE_MENU);
this.sendKeys(KeyEvent.KEYCODE_ENTER);
感谢AeroDroid尝试回答。也许我以前的代码完全集中在按钮上。
答案 1 :(得分:0)
我不知道这是否直接回答了你的问题,但我会根据我认为你想说的话来回答我的问题。如果我误解了它,我道歉。我认为你所指的“突出显示”只是重点关注的开始按钮。如果你只是专注于它,当然不会按下或激活开始按钮。从您提供的代码中,我不会通过尝试逐字地强制用户执行操作来启动操作。如果您制作菜单,不知道如何开始游戏。你的程序中没有办法调用开始按钮中的内容吗?