C# Prism WPF:如何moq回调以返回IDialogResult.Result==Buttonresult.ok
我想要moq以下接口:C# Prism WPF:如何moq回调以返回IDialogResult.Result==Buttonresult.ok,c#,wpf,moq,C#,Wpf,Moq,我想要moq以下接口: public interface IDialogService { void ShowDialog(string name, IDialogParameters parameters, Action<IDialogResult> callback); } 出于测试目的,我希望r.Result有时匹配按钮Result.OK,有时不匹配。有没有办法用最小起订量做到这一点?您可以使用: var mock=new mock(); mock.Setup(x=>x
public interface IDialogService
{
void ShowDialog(string name, IDialogParameters parameters, Action<IDialogResult> callback);
}
出于测试目的,我希望r.Result有时匹配按钮Result.OK,有时不匹配。有没有办法用最小起订量做到这一点?您可以使用:
var mock=new mock();
mock.Setup(x=>x.ShowDialog(It.IsAny(),It.IsAny(),It.IsAny())
.Callback((字符串名称、IDialogParameters参数、操作回调)=>
回调(新对话框结果(ButtonResult.Ok));
...
thing.AbortDeleteDialog();
非常感谢。我已经在修补callback了,但是没有得到newdialogaresult应该是callback的一个参数,而是尝试将它指定为o\u o
protected bool AbortDeleteDialog()
{
bool abort= true;
DialogService.ShowDialog("Should xy be deleted?", [some parameters...],
r => abort = r.Result != ButtonResult.OK);
return abort;
}
var mock = new Mock<IDialogService>();
mock.Setup(x => x.ShowDialog(It.IsAny<string>(), It.IsAny<IDialogParameters>(), It.IsAny<Action<IDialogResult>>())
.Callback((string name, IDialogParameters parameters, Action<IDialogResult> callback) =>
callback(new DialogResult(ButtonResult.Ok)));
...
thing.AbortDeleteDialog();