2013-11-05 70 views
2

我在Winforms中有一個項目,我使用MBUnit進行單元測試。現在我們計劃將此項目(在Winforms中)遷移到WPF。 我們是否應該從頭開始爲WPF編寫單元測試,還是可以重新使用現有的Windows窗體單元測試?將Windows窗體單元測試遷移到WPF

大家都知道WPF是聲明式的,但它在內部轉換爲c#代碼。所以我覺得它可以重用。如果有任何機構在這種情況下工作,請提供幫助。

我知道的都是「buts」和「ifs」。

回答

1

我以前在WinForms應用程序中使用過MVP(Model View Presenter)模式,因爲我想單元測試表示邏輯。 MVP模式在您的控件和表示邏輯之間提供了一個抽象層。如果你的WinForms應用程序使用這種模式編寫,或者這種模式的變體,那麼你應該能夠重新使用一些單元測試。

當單元測試WPF應用程序時,您應該使用MVVM模式。在MVVM模式中,大多數表示邏輯都存在於您的視圖模型中。視圖模型不與UI元素耦合,因此它們應該是單元可測試的。我的直覺是這是一個壞主意,如果這是我,那麼我會爲我的WPF應用程序從頭開始編寫單元測試。

+0

Bang。我爲我現有的應用程序使用了MVP模式。我認爲邏輯顯然是分開的。 –

3

這實際上取決於你的UI代碼和業務邏輯之間有多少分離。在理想的情況下,您有明確的分離,這意味着您的業務邏輯將輕鬆地與UI技術和端口無關。但是,如果您的UI代碼和業務邏輯混亂並且對UI技術做出了假設,那麼將會更困難。

單獨提示: WPF是一個非常易於測試並鼓勵單元測試友好的編碼模式模型視圖視圖模型(MVVM)。如果你開始一個新的WPF項目,我強烈建議你研究MVVM和單元測試。

+0

好像你在閱讀我的想法,而我正在打字,你是一個更快的打字員。 :) – Noctis

+0

我用我的現有應用程序的MVP模式。我認爲邏輯顯然是分開的。感謝您幫助TGH –

3

哇...好像有炒作的堆...但它從4歲前最好

話雖如此,答案是是(7最多...):也許吧。

如果您的單元測試只測試確保有效行爲的邏輯和方法,那麼您應該很好。

如果你的單元測試糾纏在winforms中,並依賴於它們的結果,你就不會那麼好。

良好的單元測試不應該關心視圖,而應該測試應用程序的邏輯/模型。 MVVM對這種方法非常友好。

沒有代碼或例子,很難回答你的問題。