簡體   English   中英

單元測試 - 隔離測試

[英]Unit testing - testing in isolation

我有一個有多個圖層的設置:

  • 網站
  • 申請/服務
  • 域(包含實體)
  • 持久性(包含存儲庫)

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

現在,我正在考慮測試我的網站層。 我知道我應該單獨測試它,我認為這意味着為它使用的Application層對象創建一個存根但是這個存根需要它自己的內存數據集,在持久層中的stub中重復,我不想這樣做復制它並管理它。

所以我的問題是,測試對象是否應該始終使用下面層中的存根對象才能被隔離,並且它們通常是否有自己的數據集? 或者我的Web方法是否可以在Application Layer中調用輕量級對象,該對象使用存根數據調用Persistence層?

謝謝你的幫助。 對我來說這感覺就像拼圖的最后一點......

理想情況下,在單元測試中,每個受測試的主體都與其依賴關系隔離。 您不希望認為您所測試的主題被破壞,因為其中一個依賴項已破壞並導致測試中的主題失敗。 如果你這樣測試,你可能會花很多時間在錯誤的地方追蹤錯誤。

測試事物如何一起運行是集成測試的領域,而不是單元測試

或者我的Web方法是否可以在Application Layer中調用輕量級對象,該對象使用存根數據調用Persistence層?

如果你這樣做,我不會再把測試稱為單獨測試 - 如果測試失敗,那么bug在哪里? - 但是集成測試。 不要誤解我,集成測試也沒關系,它只是有另一個目的。 但是如果你的目標是單獨測試網站層,你應該模擬/存根直接依賴。

設置測試數據可能是一項繁瑣的任務。 如果您使用DotNet,您可以使用名為NBuilder的庫來非常輕松快速地生成測試數據。 它支持一個漂亮的流暢界面。 你可以在這里閱讀更多相關信息。

暫無
暫無

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

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