C# 如何测试具有任务返回类型的方法?

C# 如何测试具有任务返回类型的方法?,c#,unit-testing,async-await,task,C#,Unit Testing,Async Await,Task,我试图测试一个签名为表单的方法 public async Task<List<int>> MethodToBeTested() public async Task MethodToBeTested() 我编写了一个单元测试,如下所示 [TestMethod] public async Task MethodToBeTestedSuccess() { Task<List<int>> results = await MethodToBeTeste

我试图测试一个签名为表单的方法

public async Task<List<int>> MethodToBeTested()
public async Task MethodToBeTested()
我编写了一个单元测试,如下所示

[TestMethod] 
public async Task MethodToBeTestedSuccess()
{
Task<List<int>> results = await MethodToBeTested()
......
}
[TestMethod]
公共异步任务方法ToBeTestedSuccess()
{
任务结果=等待方法测试()
......
}
如果该方法的返回类型是一个整数的通用列表,我会执行以下步骤来测试输出

List<int> results = MethodToBeTested();
int numberOfResults = results.Count;
Assert.AreEqual(numberOfResults,2300);
List results=methodtobetest();
int numberOfResults=results.Count;
AreEqual(numberOfResults,2300);
因此,我的问题是:如何测试异步方法(其返回类型封装在任务中),并验证是否已返回2300个结果

如果我尝试在通用整数列表上尝试的策略,我会得到错误:无法将方法组计数转换为非委托类型int


提前感谢您的帮助

假设单元测试框架是异步的(如果您正在进行异步单元测试,人们希望是:),那么您应该能够修复编译器错误:

[TestMethod] 
public async Task MethodToBeTestedSuccess()
{
    List<int> results = await MethodToBeTested()
    ......
}
[TestMethod]
公共异步任务方法ToBeTestedSuccess()
{
列表结果=等待方法测试()
......
}

换句话说,给定您所显示的签名,那么如果您等待方法调用,结果类型是
List
,而不是
Task
,并且您应该声明变量以相应地接收结果。

假设单元测试框架是
异步的(如果您正在进行异步单元测试,我们希望是:),那么您应该能够修复编译器错误:

[TestMethod] 
public async Task MethodToBeTestedSuccess()
{
    List<int> results = await MethodToBeTested()
    ......
}
[TestMethod]
公共异步任务方法ToBeTestedSuccess()
{
列表结果=等待方法测试()
......
}
换句话说,给定您显示的签名,如果
等待
方法调用,则结果类型为
列表
,而不是
任务
,您应该声明相应的变量以接收结果