2010-01-16 150 views
1

我有一個用Python編寫的服務器代碼,並且我有一個用GWT編寫的客戶端代碼。現在我想在GWT上針對來自Python服務器的數據運行自動化測試。GWT測試與外部服務器

從我搜索的內容中,人們推薦使用Selenium,但我更願意進行GWT測試,該測試對客戶代碼有更多的可見性。這樣我可以驗證本地數據庫以及任何未公開到UI的數據。

同樣在這一點上,我不太在意DOM方面,佈局和其他UI的東西。

有沒有辦法使GWTTest與外部服務器一起工作?

我試圖尋找解決方案,或者有類似問題的人,但我找不到一個。如果以前有人問過這個問題,我表示歉意。

謝謝,KOkon。

回答

0

您可以使用GWTTest框架來合併測試一些調用服務器的GWT組件。但測試將無法直接與服務器通信。如果你需要測試來設置服務器的狀態,恐怕你需要寫一些特殊的「僅用於測試目的」的RPC服務器或servlet或類似的工具。

說了這麼多,我想(大概像那些誰建議硒)推薦三種類型的測試:

  1. 服務器組件的單元測試,以及客戶端組件單元GWTTests,
  2. 測試集成測試服務器代碼與數據庫交互等。
  3. 硒驗收測試是「黑匣子」 - 它們無法訪問GWT組件的內部。
+0

有沒有辦法創建一個「代理」類RPC服務器,可以將請求重定向到我的後端?這樣RPC服務器代碼只需要實現一次。 我只是不喜歡重複(即使不是完全)後端功能的想法。 感謝您的回覆。 – KOkon

+0

我在服務器端使用java。在我的驗收測試中,我可以向URL http:/ localhost/app/deleteAllDataForTesting發出GET請求?是= 我的服務器識別此調用並執行刪除數據和重置服務器狀態的過程。這不是一個RPC,只是一個常規的http獲取,我的servlet可以響應。它似乎工作得很好。 – John

+0

非常感謝John的建議。我會在我的系統上嘗試它。 – KOkon

0

你可以做的是創建一個代理servlet,它開始於GWTTestCase嵌入式Jetty實例。該代理可以將所有調用轉發給Python中的真實服務。