1
的命令:Click.Command={Binding OkCommand}
在我的視圖(PopupView.xaml
)使用Moq,如何檢測按鈕點擊是否觸發了我的viewmodel中的事件?
<Button
Name="OKButton"
Content="{Binding Path=foo.foo, Source={StaticResource LocalResourceWrapper}}"
ToolTipService.ToolTip="{Binding Path=foo.foo, Source={StaticResource LocalResourceWrapper}}"
HorizontalAlignment="Center"
commands:Click.Command="{Binding OkCommand}"
Margin="5,10,5,10"
Click="OK_Click"
TabIndex="1" />
打完在我的視圖模型下面的命令:(PopupViewModel.cs)
private ICommand _okCommand;
public ICommand OkCommand
{
get
{
if (_okCommand == null)
{
_okCommand = new DelegateCommand<object>(OnOKCommand);
}
return _okCommand;
}
}
public void OnOKCommand(object someObject)
{
this.ReturnSelectionListsCommand.Execute(this.GetAuditOrderByItemList());
}
public DelegateCommand<List<AuditOrderByItem>> ReturnSelectionListsCommand { get; set; }
基本上我想檢測出OKCommand的確當按下按鈕時調用。所以,我需要手動調用OKButton的點擊事件,並最終檢測到ReturnSelectionListsCommand.Execute()
和GetAuditOrderByItemList()
每次都被調用一次以保證我的彈出窗口正常工作。從我的研究中,我發現可以使用ButtonAutomation對等點來觸發點擊,但在我的測試中,如果使用MVVM,我看不到如何訪問OKButton。
在我的單元測試,我試圖按照這種線使用的東西:
var mock = new Mock<PopupViewModel>();
至少檢測時,方法調用的視圖模型。