2010-07-29 72 views
0

我有一個使用MVVM的大型應用程序。該模型主要在C++ DLL中。 ViewModel是用C#編寫的,我用通常的方式將我的WPF控件綁定到ViewModel。從外部應用程序測試.Net C#WPF MVVM應用程序

該應用程序已準備好進行集成測試。我可以從應用程序內部驅動測試,但我想將測試移到另一個過程中,以便最大限度地減少應用程序對測試內容的污染。

我想在C#和WPF中自己編寫測試應用程序,但我有點卡住瞭如何去做。

注意:如果有一個第三方測試應用程序用於在.Net應用程序中測試ViewModel,我也很想聽聽!

我想Process.Start是最初的方式,但從那裏我迷路了。

基本上我需要讓應用程序正常加載,像往常一樣創建其模型,並啓動GUI,所以我不能單獨驅動單個測試方式(單元測試樣式)。然後,我想設置並獲取我的ViewModel屬性,就像我現在使用我的本地測試一樣。

我已經看過James McCafferey的MSDN 03/09文章中有關測試WPF應用程序的文章,但它的目的是測試GUI(基本上遠程按下按鈕等),這是我想要避開的東西。

在這裏反思的方式?如果是這樣,考慮到我不能簡單地反映到'空'ViewModel,它必須連接到我的模型的VM屬性是可測試的。

預先感謝

+0

更新:我最終把我的測試裝置放在主應用程序中 - 非常容易! – Surfbutler 2010-12-23 11:27:32

回答

0

基本上我需要讓應用程序加載通常,創建其照常模型,並啓動GUI,所以無法推動隔離各個方法(單元測試樣式) 。

IcuTest(http://IcuTest.com/)是你在找什麼。它讓你在單元測試框架中啓動應用程序,讓你與模型和方法交互。

+0

看起來IcuTest的工作原理是通過比較操作前後的截圖來實現,而不是我之後的操作,因爲我已經完成了MVVM的所有麻煩,以避免這種「強力」測試。使用我的進程內測試工具,我可以直接查詢ViewModel的值,而不管它們是否等同於View中的可見實體。我只想要一種方法將我的測試代碼代碼移出進程。 – Surfbutler 2010-08-03 08:13:12