我正在運行單元測試視圖模型的以下問題。如何在ViewModel中單元測試OnPropertyChanged事件處理程序
在我的項目中,有多個視圖模型(比如說A,B,C和D)。 視圖模型A是主視圖模型,它處理來自視圖模型B,C和D的PropertyChanges,然後更新主視圖。
大多數方法/在查看模型的屬性單元以外的事件處理方法處理來自B,C和D.
所述的PropertyChanged事件例如可測試:
public A()
{
b.PropertyChanged += b_PropertyChanged;
c.PropertyChanged += c_PropertyChanged;
}
protected void b_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
//process something based on the e.PropertyName
//might call some private or protected methods here to help with the processing
switch(e.Property)
{
case "SearchResults":
SearchResults = b.SearchResults;
break;
}
}
如何可以我去測試b_PropertyChanged而不公開?
更改'b'或'c'中的屬性?有什麼問題? – Sheridan 2014-10-29 15:34:56
你想要測試的是什麼?視圖模型A中的某些狀態是否在viewmodel B等中更改了特定的屬性?給出一個例子,說明如果b_PropertyChanged方法是公開的,你的Asserts將會在你的單元測試中出現。 – user469104 2014-10-29 15:37:37
是 - A將處理B或C中的任何屬性更改。 – aggietech 2014-10-29 15:38:54