Piz*_*aka 1 c# unit-testing async-await .net-4.5 prism-5
我正在为具有DelegateCommand的ViewModel编写单元测试.此命令使用异步方法执行,从Prism 5开始支持,如下所示:
MyCommand = new DelegateCommand(async () => await MyMethod());
Run Code Online (Sandbox Code Playgroud)
现在我有我的单元测试,我注意到了
await model.Command.Execute();
Assert.IsTrue(model.CommandWasRun); // just an example
Run Code Online (Sandbox Code Playgroud)
在运行命令时立即返回(因此失败).
我认为,这是一个错误的原因是,在同一单元测试中,如果我写的话,一切都很好
await model.MyMethod();
Assert.IsTrue(model.CommandWasRun);
Run Code Online (Sandbox Code Playgroud)
我错过了什么或这是一个错误吗?
您不能async
在DelegateCommand
构造函数中使用委托.你必须使用FromAsyncHandler
:
MyCommand = DelegateCommand.FromAsyncHandler(async () => await MyMethod());
Run Code Online (Sandbox Code Playgroud)
或者,等效地:
MyCommand = DelegateCommand.FromAsyncHandler(() => MyMethod());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3090 次 |
最近记录: |