2012-06-29 31 views
5

我正試圖圍繞Arquillian包裹頭腦,並沒有從根本上理解in-container模式與as-client模式之間的區別。Arquillian運行模式

我的理解是,用的Arquillian /拆封:

  • 您創建僅包含
  • 要集成的組件和測試存檔你流這在內存中的檔案,以實際容器(部署它)
  • 您運行歸檔的容器內測試
  • 您做出會發生什麼作爲測試的結果斷言

所以,從我的角度來看,所有的東西都只是「感覺」,總是會是in-container,因爲測試總是在容器中執行。

請幫我理解這兩種模式之間的區別以及兩種模式適合的集成測試類型。用於提供具體代碼示例(和而不是直接來自參考指南!)的獎勵分數,可以解釋爲什麼/如何在兩種模式下運行測試。提前致謝!

回答

1
  • 在容器:使用白盒,集成測試
  • 作爲客戶端:使用黑箱,功能測試

即,用於UI /功能測試(」作爲「客戶」在生產中使用該應用程序的角色)使用as-client模式與@RunAsClient。對於真正的集成測試(測試需要關於應用程序本身的內部「白盒」知識的類之間的依賴關係),使用in-container模式。

在這兩種情況下,ShrinkWrap和Arquillian將您的內存中歸檔(JAR/WAR/EAR)直接部署到已配置的容器(通過JBoss本地流播協議),但是當測試以不同模式運行時,根據測試模式對容器。

+0

我瞭解白盒和黑盒測試之間的區別,但我也不完全瞭解客戶端模式測試。這是否意味着客戶端模式下的shrinkwrapped歸檔沒有部署到同一個測試應用中,而是部署到單獨的應用中,以便存在客戶端/服務器類型配置?如果在客戶端模式下,shrinkwrap歸檔文件也部署到被測應用程序中,那麼我仍然沒有看到兩種模式之間的區別。 :( – dragonsfire