Android 按键下降和按键上升事件之间的测试
是否有可能在应用程序的“向下键”和“向上键”事件处理程序之间运行测试?我开发了2D街机游戏,gameView中的gameThread处理按键。我编写了JUnitAndroid测试项目。 我已经读过这个.sendKeys(),但是这个方法似乎是先向上发送key,然后向下发送信号 详情: 我将同时使用触摸和非触摸交互。但现在我在测试 非接触式。于是我写道: `受保护的void setUp()引发异常{Android 按键下降和按键上升事件之间的测试,android,junit,key-events,Android,Junit,Key Events,是否有可能在应用程序的“向下键”和“向上键”事件处理程序之间运行测试?我开发了2D街机游戏,gameView中的gameThread处理按键。我编写了JUnitAndroid测试项目。 我已经读过这个.sendKeys(),但是这个方法似乎是先向上发送key,然后向下发送信号 详情: 我将同时使用触摸和非触摸交互。但现在我在测试 非接触式。于是我写道: `受保护的void setUp()引发异常{ super.setUp(); setActivityInitialTouchMod
super.setUp();
setActivityInitialTouchMode(false);
_activity = (GameTemplate) getActivity();
<...>
它工作正常,但我编写了另一个测试:
`公共void testkeysimple(){
它失败了,我认为这是因为以下两个原因之一:
1) 程序尚未处理按键事件
2) 程序处理了keyDown和keydup事件
我是测试新手,也许用另一种方法可以更容易地完成。请帮帮我
我尝试在测试中添加重复:
public void testKeysUpDown() {
int t = TSet.skips;
this.sendRepeatedKeys(TSet.keyRepeats,KeyEvent.KEYCODE_DPAD_LEFT);
while(t>0 && !_logic.getSerp().state().equals(SerpentState.SERP_MOVES_LEFT)) t--;
assertTrue(t>0);
}
但是它也会失败。如果您使用的是基于触摸的交互,那么您可以使用MotionEvent.ACTION\u MOVE。这是指用户在不抬起手指的情况下触摸屏幕并拖动 代码片段
public boolean onTouch(View v, MotionEvent rawEvent) {
switch (rawEvent.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
// First touch on the screen
break;
case MotionEvent.ACTION_POINTER_DOWN:
// Multi-touch on the screen
break;
case MotionEvent.ACTION_UP:
// Lift from the screen
break;
case MotionEvent.ACTION_POINTER_UP:
// Multi-Lift from the screen
break;
case MotionEvent.ACTION_MOVE:
// Drag on the screen
break;
}
}
Shash如果您使用的是基于触摸的交互,那么您可以使用MotionEvent.ACTION\u MOVE。当用户触摸屏幕并拖动时,无需抬起手指 代码片段
public boolean onTouch(View v, MotionEvent rawEvent) {
switch (rawEvent.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
// First touch on the screen
break;
case MotionEvent.ACTION_POINTER_DOWN:
// Multi-touch on the screen
break;
case MotionEvent.ACTION_UP:
// Lift from the screen
break;
case MotionEvent.ACTION_POINTER_UP:
// Multi-Lift from the screen
break;
case MotionEvent.ACTION_MOVE:
// Drag on the screen
break;
}
}
Shash您需要完全控制发送的事件。您需要完全控制发送的事件。我现在正在为非接触事件编写测试。我已经为我的问题提供了详细信息。如上所述,这是我在这里的第一个问题,很抱歉,如果出现问题。我有两个项目:游戏和游戏测试,首先是第二个测试。您的代码是一种无法在测试端运行的方法。不过,也许我不知道一些测试机制。如果是,请告诉我。我现在正在为非接触事件编写测试。我已经为我的问题提供了详细信息。如上所述,这是我在这里的第一个问题,很抱歉,如果出现问题。我有两个项目:游戏和游戏测试,第一个是第二个测试。您的代码是方法,它不能在测试端运行。不过,也许我不知道一些测试机制。如果是,请告诉我。
public boolean onTouch(View v, MotionEvent rawEvent) {
switch (rawEvent.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
// First touch on the screen
break;
case MotionEvent.ACTION_POINTER_DOWN:
// Multi-touch on the screen
break;
case MotionEvent.ACTION_UP:
// Lift from the screen
break;
case MotionEvent.ACTION_POINTER_UP:
// Multi-Lift from the screen
break;
case MotionEvent.ACTION_MOVE:
// Drag on the screen
break;
}
}