我已經開始研究一個小型的ruby項目,該項目將有許多不同的數據結構和算法的示例實現。現在只需要刷新一段時間我還沒有完成的東西,但是我希望能夠像Ruby Koans那樣創建一些類似的數據結構的單元測試,但實現爲空(在另一個分支中有完整的實現)。它可以被用作一個很好的學習工具或代碼kata。如何對數據結構的內部(組織)進行單元測試?
不過,我有想出寫測試的好辦法麻煩。我不能僅僅測試公衆行爲,因爲這不會告訴我有關實施的情況,這在這裏很重要。例如,普通BST和紅黑樹的公共接口將是相同的,但RB樹具有非常具體的數據組織要求。我將如何測試?
如何公開暴露內部結構是我不知道的。至少不是沒有公開訪問實際的樹節點,我寧願不這樣做(儘管這對我的目的可能是正確的) – Herms 2010-04-05 14:51:34
@條我假設任何集合的接口不是沒有方法來訪問個人元素。對於樹來說,這將包括查詢和遍歷節點的子節點,獲得特定節點的路徑等。 – 2010-04-05 15:08:35
我主要想到的是「接口」是一個標準的Map類集合。雖然也許這不是看待它的正確方法。 – Herms 2010-04-05 15:17:15