在NUnit测试方法中等待任务

时间:2016-04-25 18:46:25

标签: c# asynchronous nunit task-parallel-library

我在项目中的NUnit服务测试中遇到了这个测试方法,我现在正在工作

[Test]
public void FindAsync_By_Using_Some_Condition()
{
    //code omitted for clarity ...
    var results = Repository.FindAsync(workClients);

    results.Wait(TimeSpan.FromSeconds(1));
    Assert.AreEqual(2, results.Result.Count);
}

public async Task<ICollection<T>> FindAsync( FindOptions<T> options )
{
    var output = new List<T>();
   //code omitted for clarity ...

    return await Task.FromResult(output);
}

他们在断言之前一直在使用Task.Wait。为什么这样做的任何特殊原因?如果他们省略了Task.Wait(TimeSpan.FromSeconds(1))会发生什么?

为什么FindAsync_By_Using_Some_Condition()不与async / await关键字一起使用?

1 个答案:

答案 0 :(得分:3)

测试可能是在NUnit支持异步之前编写的。使用NUnit 2.6.4或3.x,现在可以重写它,

[Test]
public async Task FindAsync_By_Using_Some_Condition()
{
    var results = await Repository.FindAsync(workClients);
    Assert.AreEqual(2, results.Count);
}