我目前是一個在1年前開始的項目中的新人。該項目使用C#,WPF,PRISM(CAL),實體框架,LINQ等。該應用程序使用MVVM模式完成。WPF - PRISM(CAL) - 自動功能測試
有一些單元測試,但我被要求做功能測試,因爲大部分的錯誤是在將所有組件一起使用時發現的。
我開始製作一個MSTEST項目。我的目標是啓動整個應用程序後端(模型和視圖模型),模擬UI事件並檢查訪問一個或多個viewmodel屬性的模型修改。
我的第一個客人是創建Entity上下文(模型),初始化所有PRISM模塊並開始在視圖模型中發佈事件以修改我的模型並在相同或其他視圖模型中檢查結果。我只好:
- 覆蓋棱鏡Boostrapper類
- 創建一個簡單的應用程序(因爲在MSTEST似乎
System.Windows.Application.Current
爲空)。我只是從System.Windows.Application
派生出一個類。
我可以使用UnityContainer訪問我所有的接口實現。我現在的問題是,IEventAggregator
不起作用。事件不會被解僱。我不想嘲笑事件聚合器,因爲我想讓它在棱鏡模塊之間激發我的事件(我正在做功能測試,而不是單元測試)。
我找到了一種方法,通過與Dispatcher
和DispatcherFrame
玩,使其工作,但我得到的庫存在RegionManager
似乎失敗。
我的問題是:有沒有更好的方式來做我的功能/集成測試,而不必顯示用戶界面?
我的應用程序是使用MVVM和PRISM構建的。 MVVM告訴我們邏輯全都在ViewModel中,而不是View中,因此很容易在不顯示View的情況下進行自動化功能測試(只需對ViewModel進行操作即可)。使用PRISM不應該(根據我)使這不可能做! – Nicolas 2011-05-30 12:56:21