對不起有服務依賴單元測試,如果我要求很基本的問題,如何編寫其他服務或數據庫
我已經設置了一個Web服務(使用的.Net開發的WebAPI)。這些服務是業務層或數據訪問層API。這些API要麼依賴於其他服務或數據庫本身。
我想爲它編寫單元測試用例。我有以下問題
隨着業務層的API對數據訪問服務或其他一些服務的依賴。如果我編寫單元測試只是爲了調用業務API,那麼它會調用數據訪問API。這是編寫單元測試用例的正確方法嗎?或者我應該注入所有的依賴對象與單元測試?我認爲早些時候將會是集成測試而不是單元測試。
我應該爲數據訪問層編寫單元測試嗎?我檢查了這個鏈接(Writing tests for data access code: Unit tests are waste),它說DAL不需要單元測試。我還應該爲數據訪問層編寫測試嗎?我認爲這將是集成測試而不是單元測試?
對於2,我認爲這取決於您的DAL中有多少業務邏輯。如果有可測試的邏輯,那麼單位測試可以幫助使代碼可靠。如果DAL只是在做簡單的CRUD操作,我認爲它對UT來說不合適。對於1,最佳實踐建議您的所有服務都應該實現接口。如果用戶界面 - >業務 - > DAL,則可能有IBusiness和IDAL,通過UT模擬和假貨使每個界面都可以測試。 –
我認爲,人們聽起來太想聽起來像是「正確」或「聰明」了。有測試可以防止迴歸是一件好事*。無論這些測試是觸及數據庫還是不觸摸數據庫,在事情的宏偉計劃中都無關緊要。測試==好,沒有測試==不好。話雖如此,如果你想要純粹的單元測試,你應該注入僞裝實現的所有依賴關係。我喜歡FakeItEasy,但還有其他框架可以幫助你做到這一點。如果DAL執行的邏輯超出了讀取和返回數據的範圍,則應該對其進行測試 –