簡體   English   中英

與Spark Server進行集成測試

[英]Integration testing with spark server

我正在嘗試將我的Spark服務器設置為IT。 我的意圖是測試所有控制器功能。 我考慮了以下幾種選擇:1.設置一台服務器,該服務器將在運行測試時啟動,並在測試結束時終止。

該解決方案的問題在於,我必須將整個服務器邏輯重寫為新服務器(每次在測試之前設置服務器時,都要從頭啟動服務器)。

  1. 從測試類中啟動控制器(必須啟動並進行靜態調用,以便為控制器配置正確的數據庫),該控制器將調用控制器功能並檢查其答案。

這是我最喜歡的一個,但這意味着我必須模擬一個火花請求。 我正在嘗試建立一個火花請求和一個火花響應對象,以發送到我的控制器,但是還沒有找到正確執行此操作的單一方法(以及如何發送參數,設置URL路由等)。

@Test
 Public void testTry(){
   String expectedName = "mark";
   myController myCtl = new myController()
   Request req = null;
   Response res = null;

   String childName =      myCtl.getChildNameFromDB(req, res);

  assertEquals(childName, expectedName);
}
  1. 最后一個是在測試中執行控制器功能的確切邏輯,而不是從請求中獲取參數,而是自己啟動它們。

例如,代替:

String username = req.params(""usrName") 

這將是:

Strimg username = "mark"

但是該解決方案將需要復制大量代碼,並且您可能會錯過一些代碼行,這可能會使測試在現實中控制器功能發生故障(或無法按預期提供)時成功。

您如何看待Integratiom測試Spark驅動的服務器? 我也對新的解決方案持開放態度。

如果要進行集成測試,我建議您使用第一種方法,即使用隨機選擇的免費TCP端口和HTTP客戶端庫(為此,我通常使用出色的HttpRequest庫)。

這種方法的主要問題在於,由於Spark API是靜態的,因此您將無法在測試用例/套件之間停止/啟動服務器。

暫無
暫無

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

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