你知道任何開放的軟件項目,有特別有趣/寫得好的單元測試嗎?有趣/寫得好的單元測試閱讀(識字編程)
編寫單元測試通常對我來說感覺很奇怪,因爲它看起來太隨機,太密集,稀疏......閱讀一些真實世界的例子(而不是書籍,庫例子代碼等)會很棒。
你知道任何開放的軟件項目,有特別有趣/寫得好的單元測試嗎?有趣/寫得好的單元測試閱讀(識字編程)
編寫單元測試通常對我來說感覺很奇怪,因爲它看起來太隨機,太密集,稀疏......閱讀一些真實世界的例子(而不是書籍,庫例子代碼等)會很棒。
我發現this blog post by Misko Hevery是非常有用的,尤其是因爲他包含指向他的實際源代碼的鏈接,並且寫得很好的單元測試。
更新:不幸的是,他的帖子中的鏈接現在已被破壞。但是,您可以在http://code.google.com/p/testability-explorer/source/browse/trunk/testability-explorer/src/test/java/com/google/test/metric/collection/KeyedMultiStackTest.java搜索當前源文件。
我最近遇到了在Python中檢測重疊日期範圍的問題。我對this solution的優雅印象深刻,特別是伴隨它的單元測試。它們簡短,清晰,詳盡。此外,在我看來,在文檔字符串中繪製ASCII藝術的案例是一種天才。
我做出的唯一改變是將每個assert
分成單獨的測試,以改善隔離。
您提供的鏈接中的單元測試看起來非常漂亮清晰。然而,必須說寫一個函數的單元測試可以返回基於四個參數的布爾值,而不需要外部依賴,這是一種快樂,但在現實生活中,我經常面臨的情景要複雜得多。 – trendl 2010-06-10 20:40:50
我同意,雖然這是非常美麗和緊湊的,但硬件部分正在處理實際應用中存在的各種依賴關係(如臭名昭着的數據庫相關測試)。 – 2010-06-10 22:09:05
嘗試查看行爲驅動開發,例如Cucumber項目是外部域特定語言的一個很好的例子,該語言旨在以接近自然語言的語言創建驗收測試。 – 2010-06-10 19:54:09
是的,我欣賞可用於Ruby項目和測試的各種DSL的美感,以及他們所展示的不同範例。但關鍵點在於需要準確且複雜程度高的部分,而不是像黃瓜那樣的順序測試。 – 2010-06-10 22:03:57