2011-08-31 149 views
3

我想將我的代碼轉移到更多測試驅動的開發模型,但我不確定爲表示層執行此操作的最佳方法。測試驅動開發 - WPF

其他層的行爲就像一個黑匣子,您可以在其中輸入和期望輸出。

表示層並不那麼簡單。是否有任何程序,指南或實踐可以幫助進行測試驅動的xaml開發。

+1

你的問題已經在這裏找到答案: http://stackoverflow.com/questions/3479148/tdd-type-methodology-for-wpf-silverlight – mydogisbox

+0

多謝,@mydogisbox。您是否介意將該帖子發佈爲答案,以便我可以將此問題標記爲已回答,併爲此向您提供信用? – JSWork

+0

我試過......它不會讓我因爲答案只包含一個鏈接回到stackoverflow。 – mydogisbox

回答

11

嗯,我不能拒絕發佈答案。接受答案中顯示的方法至少可以說是一個維護陷阱。

將您的GUI開發移到MVP/MVVM模型。 WPF是MVVM友好的。 製作與Presenter類委託/同步的瘦GUI(使用最少的代碼/邏輯)。這意味着您可以針對演示者編寫單元測試,並在沒有UI的情況下測試代碼的重要部分。只寫一些UI測試,並使用演示者課程執行大部分功能測試。

寫作的UI測試是沒有答案的(非平凡的GUI),因爲它們

  • 不可讀。 UI測試退化爲操縱UI元素的長時間的神祕腳本。很難看到什麼正在測試,因爲如何模糊它。如果您無法閱讀,一旦中斷就需要更長的時間才能解決問題。
  • 慢。每單位時間你會運行更少的測試。
  • 變脆。 Gui的變化可能會破壞一些GUI耦合測試,即使功能不是這樣。更多的測試維護。
  • 不穩定。您必須投入一定的時間來穩定測試,以便每次可靠運行。介紹延遲或輪詢某些事情來顯示。
+0

爲了記錄您的建議目前正在付諸實踐。 – JSWork

+2

@JSWork - 很高興聽到這個消息。如果有的話,面臨的障礙/問題。 – Gishu

+0

@Gishu你會談論更多關於委託給主講者的課程嗎?我有一個WPF/MVVM應用程序,我因爲GUI的厚度而忽略創建單元測試。 –