2011-05-23 66 views
1

我們必須測試使用fitnesse測試需要測試的遠程機器上的幾個API。通過Fitnesse測試第三方API

我們有一些預置條件。

  1. 我們需要使用webservices來測試這些API。 API的jar(比如xyz.jar)位於服務器端。 web服務在哪裏部署。
  2. 輸入必須使用fitnesse。並且xyz.jar在fitnesse方面不可用。因爲客戶端fitnesse需要獨立於xyz.jar中的更改,因此它對於所有將來的版本都是通用的。
  3. 用戶將給出什麼樣的方法來測試什麼樣的類以及wiki頁面中的輸入數據。

這裏的一個假設是使用wiki頁面上給出的輸入值和API名稱:通過反思API將從web服務調用。

樣本數據流

|健身| -----> |業務層| - > | Webservice Proxy | -------> | Webservice | -------> | xyz.jar |

我們正面臨一些類似的問題。

  1. 某些API是像DoSomething的(的自訂someId,DBLoaderType型,DBFilter過濾器,布爾排除)返回的java.util.List但這些的自訂,DBLoaderType,DBFilter,SomeNavigationSystem不能序列化對象。

  2. 某些API返回的類型可以是Java基本類型,包裝或自定義對象或收集自定義對象的值。 (boolean,Boolean,List Map,Map> 如何驗證返回類型?

  3. 我們面臨的一個問題是:如何將輸入數據從fitnesse輸入到java層(它將調用webservice測試API)如果API的類型爲registerUsersForMessage(int messageId,List users,boolean forceRegister,int maxBatch,Map)如何將這些數據從fitnesse wiki頁傳遞到java層?有什麼辦法可以將輸入數據推到某處使測試人員的wiki頁面會乾淨嗎?

這是值得歡迎的任何幫助。或者,這可能會導致頭腦風暴敬畏歡迎過任何問題。 感謝advanc即

回答

1

我不知道你在這裏測試的是什麼樣的應用程序,但我強烈建議你只保留業務細節和邏輯的FitNesse的測試頁面,並把所有的東西有關API和其他技術細節進入夾具代碼。它使燈具更加複雜,但它們處於一個擁有全套強大工具來管理複雜性的環境中。

如果您在考慮從API函數驗證返回類型的級別,那聽起來像是一種完全不同的測試。

,有參與,使您的應用程序的工作應該是透明的FitNesse的測試,除非你正在測試的Web服務本身就是一個web服務的事實。

+0

是的Randy我們打算只在fitnesse頁面中調用燈具,但API所需的數據很高,這是燈具所需的高數據,因此考慮如何將數據輸入到燈具。 – 2011-05-24 02:06:35

+0

如果數據中的細節對於理解測試的業務邏輯很重要,那麼這些數據必須在測試中。如果沒有,您可以將其隱藏在夾具代碼中。我沒有在需要大量數據的地方進行測試,所以我不確定我會如何解決這個問題。 – 2011-05-24 19:18:59