是否有可能在应用程序的按键和按键事件处理程序之间运行测试?我开发2D街机游戏,gameView里面的gameThread处理按键。我编写了JUnit Android测试项目。 我已阅读关于this.sendKeys(),但看起来,这种方法发送键,然后向下信号。按键和按键事件处理之间的测试
详情: 我将同时使用 - touch &非触摸式互动。但现在我正在测试
非触摸。所以我写了:
`保护无效设置()抛出异常{
super.setUp();
setActivityInitialTouchMode(false);
_activity = (GameTemplate) getActivity();
<...>
}`
为测试初始化。
我写的测试,以确保,即keyUp事件处理的很好:
'公共无效testReturnState(){
this.sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
_instrumentation.waitForIdleSync();
assertTrue(_logic.getSerp().state().equals(SerpentState.SERP_MOVES_FORWARD));
}`
它的工作好,但我写了另外一个测试:
'公共void testKeysSimple(){
this.sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
assertTrue(_logic.getSerp().state().equals(SerpentState.SERP_MOVES_LEFT));
}`
它失败了,我认为这是因为原因有两个:
1)程序尚未处理keyDown事件;
2)程序处理双方的keyDown和KeyUp事件
我是新来的测试,或许都可以用另一种方式做容易得多。请帮帮我。
我试图在测试中添加重复:
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);
}
,但它也将失败。
我正在为非触摸事件编写测试。我为我的问题带来了细节。如上所述,这是我的第一个问题,非常抱歉,如果出了什么问题。 – Deepscorn
我有两个项目:游戏和GameTest,第二次测试第一。你的代码是一种不能在测试端运行的方法。虽然,也许我不知道一些测试机制。如果是这样,请告诉我。 – Deepscorn