2013-11-01 58 views
0

我是一名學生,目前正在嘗試爲可以通過鍵盤控制的pacman遊戲創建單元測試。我仍然試圖測試的一個類是繼承自KeyListener的類,原因是我無法找到測試/調用KeyPressed()函數的方法。 是否可以在沒有任何插件(例如:groovy)的情況下單元測試KeyPressed(),如在此處所述的post是否可以創建一個單元測試來測試KeyListener的子類?

遊戲是用Java編寫的,我正在使用JUnit進行測試。 任何幫助,非常感謝!非常感謝你。

+0

你是說你想測試你的KeyListener事件處理程序是否被調用? –

+0

我想爲繼承KeyListener的類創建單元測試。我不知道如何模擬鍵盤輸入作爲我的單元測試的輸入,即當按下某個鍵時,會調用某些函數,如keyPressed()。希望有所幫助。 – blenzcoffee

+0

如果你這樣做,你會測試窗口。要測試你的處理程序,只需調用該方法即可。測試你的類是否有處理程序檢查屬性。 –

回答

0

由於KeyListener只是一個接口,您可以通過簡單地調用您想要測試的方法來測試它。其中一個可能的部分是傳入的KeyEvent。這是一個具體的類。但是如果你願意的話,你可以親手創建自己的機會(我將它從javadoc中解放出來)。

你將不得不更加具體。你想測試什麼?你認爲一個插件是什麼? mockito會成爲一個插件嗎?這將使您可以輕鬆創建滿足您需求的KeyEvent

但是總的來說,這是一個更好的策略:在KeyListener實施中儘可能少的代碼。只從KeyEvent中提取你需要的東西,並將其傳遞到你的課堂中,其中包含遊戲邏輯。現在你甚至不需要再測試KeyListener,你只需測試它調用的方法。

+0

我認爲mockito就是答案。我想嘲笑一個事件,看看我的處理程序是否被調用,並提供正確的功能。 mockito可以做到嗎? – blenzcoffee

+0

@blenzcoffee啊,所以你要觸發一個事件。這可能有所幫助:http://stackoverflow.com/a/6843305/61624 Mockito只會幫助創建活動。 –

相關問題