【发布时间】:2014-01-02 09:29:36
【问题描述】:
我有一个 WPF ViewModel,它有一个打开文件对话框的命令,如下所示:
var dlg = new OpenFileDialog();
var result = dlg.ShowDialog();
现在我想对该命令进行单元测试。 ShowDialog 是从 CommonDialog 继承的方法,所以我假设我可以像这样填充它:
Microsoft.Win32.Fakes.ShimCommonDialog.AllInstances.ShowDialog = () => true;
但我收到以下编译错误:
委托
Microsoft.QualityTools.Testing.Fakes.FakesDelegates.Func<Microsoft.Win32.CommonDialog,bool?>不接受 0 个参数
有什么想法吗?
【问题讨论】:
-
我不确定这是否有帮助,但不是一个对话框返回一个 DialogResult,而不是一个布尔值?也许通过指定一个布尔值,您会导致使用不同的委托,该委托需要传入一个参数。
-
ShowDialog 返回可为空的 bool 即“bool?”
-
@CodeontheCommode:您正在考虑 Form.ShowDialog。正如 filip 所说,OpenFileDialog 返回一个可为空的 bool。
标签: c# unit-testing microsoft-fakes