是否有可能在應用程序的按鍵和按鍵事件處理程序之間運行測試?我開發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