我與掙扎的部分是,無論我曾經讀到,然後再編寫測試函數會談。但是我覺得只有我先寫函數然後編寫反映函數內部工作的測試才能工作。
聽起來好像你患了test-driven development(TDD)常見的雞/蛋問題。除非您在編寫代碼之前編寫測試,否則在知道代碼之前您不知道要測試什麼,並且您認爲不能執行TDD。
這真的是一個設計師的塊(tm)的情況。就像作者的封鎖一樣,通過編碼完成這項工作通常是很好的 - 即使你把所有的代碼都扔掉了。
破解原型,然後假裝它不存在。(不要運送:)這個原型應該探索你不熟悉的概念,或者沒有足夠的信息來開始設計。它應該讓你熟悉這個問題,以便你可以開始設計。
當你有了一個概念驗證,代碼審查了它。在你的評論中,確定你想讓公共接口看起來像什麼,哪些架構模式最適合該程序,哪些依賴應該彼此隔離(並在測試中被嘲笑)。做筆記,或在項目計劃軟件/項目跟蹤軟件中的工作項目中提交需求。
如果您在評論中發現了這些問題,您應該嘗試招聘其他程序員(以及可能設計人員/識別您業務需求的人員)來幫助您完成此項任務。代碼導師可能是個好主意。
從該評論,你應該能夠開始編碼你的測試。或者你可以開始寫技術規範 - 這個建議同樣適用於兩者。
(如果你工作在一個團隊中,收集需求和獲取用戶反饋/執行UATs還要求,但可能是別人的工作)
編輯
請記住,這只是解決這個問題的一種方法。另一種方法是簡單地放鬆任何TDD應該如何工作的清教徒般的理想,並簡單地開發與代碼並行的測試。同時檢查它們。
在沒有TDD的情況下進行單元測試也很好。單元測試賦予更多的好處,而不僅僅是編碼你的設計和需求。當您添加新功能或修復錯誤(迴歸測試)或移植代碼時,它們也是巨大的幫助。
寫作測試首先是一種稱爲TDD的額外方法:http://stackoverflow.com/questions/tagged/tdd – gideon 2011-03-18 06:10:23