天天看點

依賴屬性之“風雲再起”五十二. 其他協助類測試代碼十三. 其他協助類的實作代碼十四. 回歸并統計覆寫率十五. 簡單驗證依賴屬性系統十六. 本文總結十七. 相關代碼下載下傳十八.系列進度

這裡就簡單寫一下對DependencyObjectTypeTest的測試代碼:

由于它的功能比較簡單,是以我們就不做過多介紹,大家想了解更多,可以參看代碼。

LocalValueEnumerator:手動實作一個IEnumerator來友善通路LocalValue

   DependencyPropertyChangedEventArgs:PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)的參數,它的第一個參數為該DependencyProperty、第二個參數為原來的值、第三個參數為改變了的值。

DependencyPropertyKey:構造函數傳入該DependencyProperty,然後通過Type來OverrideMetadata,此類隻是起到了封裝作用。

  DependencyObjectType:用靜态Dictionary<Type, DependencyObjectType>來存儲DependencyObjectType,主要有FromSystemType、 IsInstanceOfType和IsSubclassOf三個功能。

  在上面的開發過程中,我們會不斷的運作和檢視代碼通過情況,最後我們也來看一下測試用例的總體通過情況,其實在前面已經運作過很多次了,因為每個功能都要經過”測試代碼-功能代碼-測試-重構“等步驟。

<a href="http://images.cnblogs.com/cnblogs_com/KnightsWarrior/WindowsLiveWriter/1e0ba9e88ab7_11359/2010-9-23%2019-41-10_4.png"></a>

  最後也看一下代碼測試覆寫率,代碼測試覆寫率對一個系統或者産品來說是一個比較重要的品質名額,可以通過它看出系統的穩定性和可控性。一般在項目的開發中,我們都會以85%~90%的測試代碼覆寫率作為達标的參考标準。

<a href="http://images.cnblogs.com/cnblogs_com/KnightsWarrior/WindowsLiveWriter/1e0ba9e88ab7_11359/2010-9-23%2019-40-16_4.png"></a>

  由于MONO本身對依賴屬性沒有那麼健全,我們也沒有寫那麼詳細的測試代碼,中間直接就實作了一些功能,嚴格地說,是以本文并沒有完全遵從正規的測試驅動開發流程。

其實通過上面的測試用例,基本就用不着再單獨測試了,但鑒于覆寫率比較低的問題,是以最後我們還是來測試一下剛才建構的依賴屬性系統:

測試結果:

<a href="http://images.cnblogs.com/cnblogs_com/KnightsWarrior/WindowsLiveWriter/d1051bd1bd80_136FD/2010-8-26%201-29-16_2.png"></a>

到處為止,我們這篇文章也宣告結束。

  在文章的最後,和往常一樣,我們提供代碼的下載下傳,再次溫馨提示:這幾篇文章最重要的就是下載下傳代碼來細細研究,代碼裡面也添加了比較詳細的注釋,如果大家有什麼問題,也可以直接和我聯系,如果有不正确的地方也希望多多海涵并能給我及時回報,我将感激不盡!

前篇 <a href="http://www.cnblogs.com/KnightsWarrior/archive/2010/07/05/1771101.html">· 1. WPF 基礎到企業應用系列1——開篇有益</a> <a href="http://www.cnblogs.com/KnightsWarrior/archive/2010/07/06/1771831.html">· 2. WPF 基礎到企業應用系列2——WPF前世今生</a> <a href="http://www.cnblogs.com/KnightsWarrior/archive/2010/07/09/1774059.html">· 3. WPF 基礎到企業應用系列3——WPF開發漫談</a> <a href="http://www.cnblogs.com/KnightsWarrior/archive/2010/07/14/1776916.html">· 4. WPF 基礎到企業應用系列4——WPF千年輪回</a> <a href="http://www.cnblogs.com/KnightsWarrior/archive/2010/07/23/1783388.html">· 5. WPF 基礎到企業應用系列5——WPF千年輪回 續前緣</a> <a href="http://www.cnblogs.com/KnightsWarrior/archive/2010/08/02/1790131.html">· 6. WPF 基礎到企業應用系列6——WPF布局全接觸</a> <a href="http://www.cnblogs.com/KnightsWarrior/archive/2010/09/27/1836372.html">· 8. WPF 基礎到企業應用系列8——依賴屬性之“風雲再起”</a> · 9. WPF 基礎到企業應用系列9——深入剖析WPF事件機制 (核心篇)      ·10. WPF 基礎到企業應用系列10——WPF事件機制之“刨根問底” ·11. WPF 基礎到企業應用系列11——深入剖析WPF指令機制 (核心篇)   ·12. WPF 基礎到企業應用系列12——WPF指令之“庖丁解牛” ·13. WPF 基礎到企業應用系列13——WPF Binding全接觸 (核心篇)    ·14. WPF 基礎到企業應用系列14——WPF Binding之“面面俱到” 中篇 · 1. 資源、樣式、模闆 · 2. 尺寸縮放、定位與變換元素 · 3. WPF控件分類介紹與使用技巧 · 4. 使用者控件和自定義控件開發 · 5. 多語言、皮膚和主題 · 6. 2D圖形 · 7. 3D圖形 · 8. 動畫(幾種動畫的應用) · 9. 音頻、視訊、語音 · 10. 文檔、列印、報表 後篇 · 1. Win32、Windows Form以及ActiveX之間的互用性 · 2. 建構并部署應用程式(ClickOnce部署、微軟setup /InstallShield+自動更新元件) · 3. MVC、MVP、MVVM全解析 · 4. WPF的模式講解及執行個體(MVC Demo) · 5. WPF的模式講解及執行個體(MVP Demo) · 6. WPF的模式講解及執行個體(MVVM Demo) · 7. 性能優化(WPF項目的瓶頸) · 8.一個完整WPF項目(普通架構版) · 9. 一個完整WPF項目(MVVM架構版) · 10. WPF 4.0新功能

本文轉自KnightsWarrior51CTO部落格,原文連結:http://blog.51cto.com/knightswarrior/405236 ,如需轉載請自行聯系原作者

繼續閱讀