我有一个实现ICommand接口的RelayCommand类,它接受一个新的Action作为其构造函数的参数。这是非常基本的
例如,这是我在单击按钮时如何使用命令。这段代码在我的ViewModel的构造函数中。
所有这些代码都打开了一个FolderBrowserDialog,让用户选择一个文件夹。
OutputSelect = new RelayCommand(new Action<object>(folderSelect));
这是viewModel类
中的方法public void folderSelect(object obj)
{
var dlg = new FolderBrowserDialog();
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
// Open document
string filename = dlg.SelectedPath;
_model.OutputFolder = filename;
}
}
单击按钮后,将运行方法folderSelect。
现在我想知道如何对我的应用程序的这个功能进行单元测试?
我是否为动作制作了模拟并将其传递给我的viewModel.OutputSelect.Execute()?
答案 0 :(得分:0)
&#34;模型视图ViewModel&#34;是一种架构模式,它使用户界面层(UI)与业务层之间有明确的分离。按钮命令属性为 ICommand 类型,当用户点击按钮时,它会在后面调用 ICommand.Execute()方法。
因此,要进行单元测试,您可以通过直接调用执行(对象参数)方法来执行此操作 在你的情况下它是
OutputSelect.Execute(null)