我正在将我的一些方法转换为async
. 让它与 NUnit 一起工作非常简单。
测试方法不能是异步的。但是我们仍然可以访问任务并行库的全部功能,只是不能await
在测试方法中直接使用关键字。
在我的示例中,我有一个方法:
public string SendUpdateRequestToPlayer(long playerId)
它在 NUnit 中进行了如下测试:
string result = mgr.SendUpdateRequestToPlayer(player.Id.Value);
Assert.AreEqual("Status update request sent", result);
mocks.VerifyAll();
现在我已经将方法更改SendUpdateRequestToPlayer
为异步
public async Task<string> SendUpdateRequestToPlayer(long playerId)
我只需要修改我的测试来Wait
完成任务:
Task<string> task = mgr.SendUpdateRequestToPlayer(player.Id.Value);
task.Wait(); // The task runs to completion on a background thread
Assert.AreEqual("Status update request sent", task.Result);
mocks.VerifyAll();