2010-02-05 119 views
3

測試我有一個設置了若干層:單元測試 - 隔離

  • 網站
  • 應用程序/服務
  • 域(含單位)
  • 持久性(包含庫)

我正在測試持久層隔離確定使用從存根對象創建的內存中的數據。

現在,我想測試我的網站層。我知道我應該單獨測試它,我認爲意味着爲它使用的應用層對象創建一個存根,但是這個存根將需要它自己的一組內存數據,在持久層的存根中複製,我不想做複製並管理它。

所以我的問題是,被測主題是否應該總是與來自下面圖層的存根對象一起工作,以便被隔離,並且他們通常擁有自己的一組數據?或者,我的web方法在測試中調用應用層中的一個輕量級對象,並使用存根數據調用持久層?

感謝您的幫助。這感覺就像對我來說最後一個難題......

回答

5

理想情況下,在單元測試中,每個被測主題都與其依賴關係隔離。您不希望您的受測試對象因爲其依賴關係中斷而導致測試對象失敗而中斷測試對象。如果你這樣測試,你可能會花很多時間在錯誤的地方追蹤錯誤。

測試事情如何一起工作是集成測試,而不是單元測試

+0

謝謝。我真的需要再次提醒這一次,以便習慣於這種工作方式。認爲我現在明白了 – 2010-02-05 05:13:24

1

的域名或者是在測試我的Web方法調用中與存根調用持久層應用層的輕量級對象確定數據?

如果你這樣做,我不會再單獨調用測試單元測試 - 如果測試失敗,錯誤在哪裏? - 但是一個綜合測試。不要誤解我,集成測試也不錯,它只是另一個目的。但是,如果你的目標是單獨測試網站層,你應該模擬/存根直接依賴。

0

設置測試數據可能是一件單調乏味的工作。如果您正在使用DotNet,則可以使用名爲NBuilder的庫非常簡單快速地生成測試數據。它支持流暢的界面。你可以閱讀更多關於它here