在此尋找一些實用建議以及人們在類似情況下遇到的任何體驗。TDD:「僅測試」方法
我們使用BDD/TDD sytle方法來構建我們的軟件(相當大/複雜的應用程序)最終結果是從業務需求導出的行爲規範(Given/When/Then style),反映這些行爲的單元測試和反映測試要求的代碼。但是,最近我們的測試部門已經開始運行集成測試,並且可以理解,他們想要使用我們(已經通過)的業務邏輯代碼來設置和拆除測試狀態(而不是直接與數據庫打交道),作爲他們主要關注通過應用程序的UI進行測試,並且不希望花費整天的時間來討論數據庫。
問題是,一些實體存儲庫沒有刪除方法,因爲目前還沒有業務需求。許多已經存檔/恢復/備份等(並且可能在待辦事項上有待刪除)。
所以現在我們有一個測試部門。要求刪除(但與商業用戶故事衝突)
所以....我的問題是...如果我要添加方法專門爲測試部門...處理的最佳方式是什麼這些。我知道這在「TDD烏托邦」中被普遍認爲是不正確的做法,但實際上,您是如何處理這種衝突的?
的第一個想法我有或者是使用命名...
void TestOnly_Delete(Guid id){}
... ...屬性
[TestOnly]
void Delete(Guid id){}
...或編譯器指令...
#if TESTBUILD
void Delete(Guid id){}
#endif
所以至少開發人員可以知道不要調用TestOnly方法,並且最大程度上不會在生產版本中部署測試方法。
...或只是欺騙並添加一個用戶故事來管理它的方式;-)
任何經驗或建議,衷心感謝?
在此先感謝。