簡體   English   中英

gwt dev模式運行時的服務器端測試用例

[英]server-side test cases while gwt dev mode is running

因此,我有一個(有點)怪異的想法-正在開發的系統正在通過各種服務與外界通信,但是它完全是服務器端的,並且作為一次戰爭部署。 我想為其編寫一個基本的UI(dev / debug級,不用於生產)。 主要目標:

  • 避免調用系統服務,而是直接在java對象上調用方法
  • 使用GWT
  • 必須在測試用例(testng)中工作,並且必須在tomcat上進行部署(最好在開發和生產gwt模式下使用)
  • 將其分開,限制對系統的更改

那么...如何用gwt做到這一點? 當部署到tomcat時,我將兩者置於同一場戰爭中。 (因為不同的戰爭有不同的類加載器)。 在運行測試用例(集成時,它們使用db等)時,我將在初始化期間啟動嵌入式碼頭並注冊新的gwt servlet。

好的,這聽起來可行。 但是開發模式呢? 我希望能夠啟動常規開發模式,這將允許

  • 修改UI代碼(顯然可以做到),並且
  • 修改服務器端代碼(通常使用jrebel可以實現)-但是在這種情況下如何運行測試用例? 我不會肯定地重寫它們。

放棄在同一jvm中運行UI和System的想法會有所幫助,並且可以實現很好的分離,但是也會迫使我寫一些毫無意義的RPC / RMI /類似的東西。

關於如何解決這個問題的任何見解?

順便說一句-這只是一個下班后的項目,因此,我絕對不會在一個真實的系統中瘋狂的想法。

在單獨的JVM中運行后端(Tomcat,Jetty等)和前端(GWT開發人員模式)就可以了。 現在實際上實際上是推薦的方法(特別是如果您想在某個時候使用SuperDevMode的話)。

這是我使用eclipse的開發策略:

  1. 在調試模式下使用WTP和Jetty啟動后端服務器(當我在后端更改某些內容時,JRebel用於熱交換類)。
  2. 啟動GWT開發模式
  3. 在瀏覽器中打開GWT應用

這樣,當我在GWT部分中更改某些內容時,只需要刷新瀏覽器,即可在UI中看到更改。
JRebel負責后端部分的所有更改。

前端和后端之間的通信與在生產模式下( RequestFactoryRPCRequestBuilder )進行通信的方式相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM