簡體   English   中英

單元測試棱鏡5異步Delegate命令並行執行

[英]Unit Test Prism 5 async Delegatecommand executes in parallel

我正在為具有DelegateCommand的ViewModel編寫單元測試。 此命令使用異步方法執行,自Prism 5開始就支持該方法,如下所示:

MyCommand = new DelegateCommand(async () => await MyMethod());

現在我進行了單元測試,我注意到

await model.Command.Execute();
Assert.IsTrue(model.CommandWasRun); // just an example

命令運行時立即返回(因此失敗)。

我認為這是一個錯誤的原因是,如果我寫的話,在同一單元測試中一切都很好

await model.MyMethod();
Assert.IsTrue(model.CommandWasRun);

我是否缺少某些東西或這是一個錯誤?

您不能在DelegateCommand構造函數中使用async委托。 您必須使用FromAsyncHandler

MyCommand = DelegateCommand.FromAsyncHandler(async () => await MyMethod());

或等效地:

MyCommand = DelegateCommand.FromAsyncHandler(() => MyMethod());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM