我們一直在 .Net core 3.1 中開發 REST API,并使用 MS TEST - Visual Studio 2019 中的測驗專案進行單元測驗。
現在我們有一個嚴格的規則來遵循測驗驅動開發。從理論上講,我可以理解 TDD 將涉及撰寫測驗以實作需求并不斷迭代 RED GREEN 和 REFACTOR 周期。
現在我的問題是,如果我有一個端點,它將根據作者 ID 從 DB 獲取所有書籍,例如以下端點
httpget : api/boooks/authors/1006
這將回傳一個回應,我應該在 MSTest 專案的 Test 類中撰寫哪些所有案例/測驗方法,這樣我才能說,我遵循了測驗驅動開發?
在 TDD 之前,我將為 Service 方法撰寫一個 TestMethod,它將呼叫資料庫層并從 SQL DB 中獲取作者資訊。所以只有 1 種具有不同模擬輸入的測驗方法將被撰寫。
我對 TDD 很陌生,因此這個問題。任何評論都有幫助
uj5u.com熱心網友回復:
如果您對需要撰寫多少個測驗用例有疑問,您可以考慮使用Devil's Advocate 技術來批評您的測驗代碼。
例如,如果您撰寫單個單元測驗(偽代碼):
Initialise System Under Test (SUT)
Call api/boooks/authors/1006
Assert that the response is, say, [Foo, Bar]
然后,根據red-green-refactor 檢查表和 Devil's Advocate 技術,實作應該是可能可行的最簡單的事情。那會是什么?
return [Foo, Bar];
無條件地回傳一個硬編碼的值不是你想到的實作。這意味著您至少還有一個測驗用例要撰寫。
要記住的另一個啟發式方法是,測驗用例的數量應該至少與實作的圈復雜度一樣多,而且很可能更多。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/466302.html
上一篇:無法合并來自兩臺計算機的更改
下一篇:找到子坐標并進一步傳遞它們?
