2012-02-15 262 views
0

所以,我已經有了一個JUnit測試(片段)關閉窗口,看起來像JUnit測試後

String buffer="Mary had a little lamb"; 
r.decodeSWT(buffer, false, new GraphDrawingForSWT()); 
assertTrue((r.getNumberOfNodesInGraph() == 8) && (r.getNumberOfEdgesInGraph() == 7)); 

我的問題是,decodeSWT方法打開呈現出圖中的窗口,並且測試將不會繼續進行,直到它已關閉。有沒有一種最佳實踐方式來覆蓋測試中的這一點?這顯然使自動運行測試變得很困難。

+0

在你的例子中什麼是「r」?另外,我第二@DNA,你不能分開管理圖表(和計數節點)的代碼與顯示它的代碼嗎? – phtrivier 2012-02-17 13:21:11

回答

0

這樣的問題通常表明您的代碼需要重構,以便邏輯部分(例如構造圖)與GUI部件完全分離。然後,您可以通過輸入字符串並測試圖形輸出(例如)來測試邏輯部分,然後通過打開一個GUI,給它一個圖形,測試某些節點被顯示(例如)和然後從測試代碼中關閉GUI。