2014-04-08 67 views

回答

0

是的,您應該在某個時間點測試db層,但可能與測試端點結果的單元測試不在同一單元測試中。

在單元測試級別,您希望進行小型/快速/獨立測試,以便最終爲REST部分提供一個測試/套件,另一個專注於db層。
然後你可能會有更多的集成/端到端測試來檢查整個系統:執行請求並檢查db是否被正確更新。

我自己作爲QA工作的經驗是,涉及數據庫的測試是通過QA使用第三方工具進行集成/端到端測試以及功能視角完成的(我們使用Robot Framework) 。

+0

是不是REST調用「終端到終端「真正意義上的測試? –

+0

當然。我用測試人員的觀點來使用它,試圖傳達這樣的想法:對於這樣的測試,我們不會僅僅檢查由服務器返回的JSON,而是在系統的其他部分預期的結果(比如「用戶被添加到這個表中那個db「) –

1

在我完美的世界中(有一天我想住在那裏...)有幾個不同的測試涉及到完全驗證我提供的RESTful服務。

單元測試爲應用程序的每個邏輯層,使用依賴注入來模擬下一個較低層,並驗證每個單元正常工作。這可能是編組/解組參數和響應的單元,執行業務邏輯的單元以及管理持久性的單元。 (可能有多個單元,每個單元在每一層都有自己的測試。)這些測試在測試框架之外沒有依賴關係,除了必須運行持久性實現的持久層之外。

還有集成測試需要一個運行系統。這是您撥打正在運行的服務的地方,並驗證您是否獲得了預期的響應。您也可以檢查通話的副作用。在我的團隊中,我們經常通過進行不同的服務呼叫(或呼叫)來依靠第一個呼叫的結果來做到這一點。這可以鍛鍊更多的系統。我們發現直接檢查持久層的副作用很少告訴我們,我們無法通過使用不同的服務調用獲得。

0

做的就是使用RESTful服務本身來測試出的數據持久化的一種方式,

例如,你可以使用PUT消息堅持的實體,並使用GET操作來獲取它,使確保所有的屬性是平等的。這更多的是一種涵蓋端到端的集成測試。

尤其是你的應用程序在做更多的CRUD操作,如果你使用這種方法,你可能避免創建每個測試,每一層(如知識庫)

相關問題