我在项目中的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关键字一起使用?
答案 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);
}