我已經得到一個模塊名,可以開始定義測試用例了,如清單 5 所示:
清單 5. 您必須實現 getModuleName 方法并提供一個有效的名字
import com.google.gwt.junit.client.GWTTestCase;import com.google.gwt.user.client.Timer;public class WordModuleTest extends GWTTestCase { public String getModuleName() { return "com.acme.gwt.WordModule"; }} |
到目前為止一切良好,但是我還沒有執行任何測試!由于我的 Ajax 應用程序使用 AsyncCallback
對象,在通過測試用例調用 getDefinition()
方法時, 我必須強迫 JUnit 延遲運行;否則測試將由于沒有任何響應而失敗。這就要用到 GWT 的 Timer
類。Timer
使我能夠重寫 getDefinition()
的 run
方法,在 Timer
內完成測試用例邏輯。(測試用例以獨立線程運行,有效地阻塞 JUnit 完成整個測試用例)。
以我的測試為例,我將首先調用 getDefinition()
方法,然后提供一個 Timer
的 run()
方法的實現。run()
方法得到輸出 Label
實例的文本并驗證是否是正確定義。定義了 Timer
實例后,我就需要確定其何時運行,同時強制 JUnit 掛起直至 Timer
實例完成。也許聽起來有點復雜,不必擔心,因為實踐起來非常簡易。實際上,清單 6 展示了整個過程: